Turbo
C++11 metaprogramming library
 All Classes Pages
preproc_main.cpp
1 # 1 "main.cpp"
2 # 1 "<built-in>" 1
3 # 1 "<built-in>" 3
4 # 178 "<built-in>" 3
5 # 1 "<command line>" 1
6 # 1 "<built-in>" 2
7 # 1 "main.cpp" 2
8 # 24 "main.cpp"
9 # 1 "./eval.hpp" 1
10 # 24 "./eval.hpp"
11 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 1 3
12 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
13 
14 
15 
16 
17 
18 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 1 3
19 # 186 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 3
20 namespace std
21 {
22  typedef long unsigned int size_t;
23  typedef long int ptrdiff_t;
24 
25 
26  typedef decltype(nullptr) nullptr_t;
27 
28 }
29 # 430 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 3
30 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 1 3
31 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 3
32 # 1 "/usr/include/features.h" 1 3 4
33 # 356 "/usr/include/features.h" 3 4
34 # 1 "/usr/include/stdc-predef.h" 1 3 4
35 # 357 "/usr/include/features.h" 2 3 4
36 # 378 "/usr/include/features.h" 3 4
37 # 1 "/usr/include/sys/cdefs.h" 1 3 4
38 # 385 "/usr/include/sys/cdefs.h" 3 4
39 # 1 "/usr/include/bits/wordsize.h" 1 3 4
40 # 386 "/usr/include/sys/cdefs.h" 2 3 4
41 # 379 "/usr/include/features.h" 2 3 4
42 # 402 "/usr/include/features.h" 3 4
43 # 1 "/usr/include/gnu/stubs.h" 1 3 4
44 # 10 "/usr/include/gnu/stubs.h" 3 4
45 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
46 # 11 "/usr/include/gnu/stubs.h" 2 3 4
47 # 403 "/usr/include/features.h" 2 3 4
48 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/os_defines.h" 2 3
49 # 431 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 2 3
50 
51 
52 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cpu_defines.h" 1 3
53 # 434 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++config.h" 2 3
54 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 2 3
55 # 48 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
56 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 1 3
57 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 3
58 
59 
60 
61 
62 
63 
64 
65 
66 # 1 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 1 3
67 # 64 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 3
68 # 1 "/usr/include/stdint.h" 1 3 4
69 # 26 "/usr/include/stdint.h" 3 4
70 # 1 "/usr/include/bits/wchar.h" 1 3 4
71 # 27 "/usr/include/stdint.h" 2 3 4
72 # 1 "/usr/include/bits/wordsize.h" 1 3 4
73 # 28 "/usr/include/stdint.h" 2 3 4
74 
75 
76 
77 
78 
79 
80 
81 
82 typedef signed char int8_t;
83 typedef short int int16_t;
84 typedef int int32_t;
85 
86 typedef long int int64_t;
87 
88 
89 
90 
91 
92 
93 
94 typedef unsigned char uint8_t;
95 typedef unsigned short int uint16_t;
96 
97 typedef unsigned int uint32_t;
98 
99 
100 
101 typedef unsigned long int uint64_t;
102 # 65 "/usr/include/stdint.h" 3 4
103 typedef signed char int_least8_t;
104 typedef short int int_least16_t;
105 typedef int int_least32_t;
106 
107 typedef long int int_least64_t;
108 
109 
110 
111 
112 
113 
114 typedef unsigned char uint_least8_t;
115 typedef unsigned short int uint_least16_t;
116 typedef unsigned int uint_least32_t;
117 
118 typedef unsigned long int uint_least64_t;
119 # 90 "/usr/include/stdint.h" 3 4
120 typedef signed char int_fast8_t;
121 
122 typedef long int int_fast16_t;
123 typedef long int int_fast32_t;
124 typedef long int int_fast64_t;
125 # 103 "/usr/include/stdint.h" 3 4
126 typedef unsigned char uint_fast8_t;
127 
128 typedef unsigned long int uint_fast16_t;
129 typedef unsigned long int uint_fast32_t;
130 typedef unsigned long int uint_fast64_t;
131 # 119 "/usr/include/stdint.h" 3 4
132 typedef long int intptr_t;
133 
134 
135 typedef unsigned long int uintptr_t;
136 # 134 "/usr/include/stdint.h" 3 4
137 typedef long int intmax_t;
138 typedef unsigned long int uintmax_t;
139 # 65 "/usr/bin/../lib/clang/3.4.2/include/stdint.h" 2 3
140 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdint" 2 3
141 
142 
143 
144 
145 namespace std
146 {
147  using ::int8_t;
148  using ::int16_t;
149  using ::int32_t;
150  using ::int64_t;
151 
152  using ::int_fast8_t;
153  using ::int_fast16_t;
154  using ::int_fast32_t;
155  using ::int_fast64_t;
156 
157  using ::int_least8_t;
158  using ::int_least16_t;
159  using ::int_least32_t;
160  using ::int_least64_t;
161 
162  using ::intmax_t;
163  using ::intptr_t;
164 
165  using ::uint8_t;
166  using ::uint16_t;
167  using ::uint32_t;
168  using ::uint64_t;
169 
170  using ::uint_fast8_t;
171  using ::uint_fast16_t;
172  using ::uint_fast32_t;
173  using ::uint_fast64_t;
174 
175  using ::uint_least8_t;
176  using ::uint_least16_t;
177  using ::uint_least32_t;
178  using ::uint_least64_t;
179 
180  using ::uintmax_t;
181  using ::uintptr_t;
182 }
183 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 2 3
184 
185 
186 
187 namespace std __attribute__ ((__visibility__ ("default")))
188 {
189 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
190  template<typename _Tp, _Tp __v>
191  struct integral_constant
192  {
193  static constexpr _Tp value = __v;
194  typedef _Tp value_type;
195  typedef integral_constant<_Tp, __v> type;
196  constexpr operator value_type() const { return value; }
197 
198 
199 
200  };
201 
202  template<typename _Tp, _Tp __v>
203  constexpr _Tp integral_constant<_Tp, __v>::value;
204 
205 
206  typedef integral_constant<bool, true> true_type;
207 
208 
209  typedef integral_constant<bool, false> false_type;
210 
211 
212 
213  template<bool, typename, typename>
214  struct conditional;
215 
216  template<typename...>
217  struct __or_;
218 
219  template<>
220  struct __or_<>
221  : public false_type
222  { };
223 
224  template<typename _B1>
225  struct __or_<_B1>
226  : public _B1
227  { };
228 
229  template<typename _B1, typename _B2>
230  struct __or_<_B1, _B2>
231  : public conditional<_B1::value, _B1, _B2>::type
232  { };
233 
234  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
235  struct __or_<_B1, _B2, _B3, _Bn...>
236  : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type
237  { };
238 
239  template<typename...>
240  struct __and_;
241 
242  template<>
243  struct __and_<>
244  : public true_type
245  { };
246 
247  template<typename _B1>
248  struct __and_<_B1>
249  : public _B1
250  { };
251 
252  template<typename _B1, typename _B2>
253  struct __and_<_B1, _B2>
254  : public conditional<_B1::value, _B2, _B1>::type
255  { };
256 
257  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
258  struct __and_<_B1, _B2, _B3, _Bn...>
259  : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
260  { };
261 
262  template<typename _Pp>
263  struct __not_
264  : public integral_constant<bool, !_Pp::value>
265  { };
266 
267 
268 
269 
270 
271 
272  template<typename _Tp>
273  struct __success_type
274  { typedef _Tp type; };
275 
276  struct __failure_type
277  { };
278 
279 
280 
281  template<typename>
282  struct remove_cv;
283 
284  template<typename>
285  struct __is_void_helper
286  : public false_type { };
287 
288  template<>
289  struct __is_void_helper<void>
290  : public true_type { };
291 
292 
293  template<typename _Tp>
294  struct is_void
295  : public __is_void_helper<typename remove_cv<_Tp>::type>::type
296  { };
297 
298  template<typename>
299  struct __is_integral_helper
300  : public false_type { };
301 
302  template<>
303  struct __is_integral_helper<bool>
304  : public true_type { };
305 
306  template<>
307  struct __is_integral_helper<char>
308  : public true_type { };
309 
310  template<>
311  struct __is_integral_helper<signed char>
312  : public true_type { };
313 
314  template<>
315  struct __is_integral_helper<unsigned char>
316  : public true_type { };
317 
318 
319  template<>
320  struct __is_integral_helper<wchar_t>
321  : public true_type { };
322 
323 
324  template<>
325  struct __is_integral_helper<char16_t>
326  : public true_type { };
327 
328  template<>
329  struct __is_integral_helper<char32_t>
330  : public true_type { };
331 
332  template<>
333  struct __is_integral_helper<short>
334  : public true_type { };
335 
336  template<>
337  struct __is_integral_helper<unsigned short>
338  : public true_type { };
339 
340  template<>
341  struct __is_integral_helper<int>
342  : public true_type { };
343 
344  template<>
345  struct __is_integral_helper<unsigned int>
346  : public true_type { };
347 
348  template<>
349  struct __is_integral_helper<long>
350  : public true_type { };
351 
352  template<>
353  struct __is_integral_helper<unsigned long>
354  : public true_type { };
355 
356  template<>
357  struct __is_integral_helper<long long>
358  : public true_type { };
359 
360  template<>
361  struct __is_integral_helper<unsigned long long>
362  : public true_type { };
363 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
364  template<typename _Tp>
365  struct is_integral
366  : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
367  { };
368 
369  template<typename>
370  struct __is_floating_point_helper
371  : public false_type { };
372 
373  template<>
374  struct __is_floating_point_helper<float>
375  : public true_type { };
376 
377  template<>
378  struct __is_floating_point_helper<double>
379  : public true_type { };
380 
381  template<>
382  struct __is_floating_point_helper<long double>
383  : public true_type { };
384 # 281 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
385  template<typename _Tp>
386  struct is_floating_point
387  : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
388  { };
389 
390 
391  template<typename>
392  struct is_array
393  : public false_type { };
394 
395  template<typename _Tp, std::size_t _Size>
396  struct is_array<_Tp[_Size]>
397  : public true_type { };
398 
399  template<typename _Tp>
400  struct is_array<_Tp[]>
401  : public true_type { };
402 
403  template<typename>
404  struct __is_pointer_helper
405  : public false_type { };
406 
407  template<typename _Tp>
408  struct __is_pointer_helper<_Tp*>
409  : public true_type { };
410 
411 
412  template<typename _Tp>
413  struct is_pointer
414  : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
415  { };
416 
417 
418  template<typename>
419  struct is_lvalue_reference
420  : public false_type { };
421 
422  template<typename _Tp>
423  struct is_lvalue_reference<_Tp&>
424  : public true_type { };
425 
426 
427  template<typename>
428  struct is_rvalue_reference
429  : public false_type { };
430 
431  template<typename _Tp>
432  struct is_rvalue_reference<_Tp&&>
433  : public true_type { };
434 
435  template<typename>
436  struct is_function;
437 
438  template<typename>
439  struct __is_member_object_pointer_helper
440  : public false_type { };
441 
442  template<typename _Tp, typename _Cp>
443  struct __is_member_object_pointer_helper<_Tp _Cp::*>
444  : public integral_constant<bool, !is_function<_Tp>::value> { };
445 
446 
447  template<typename _Tp>
448  struct is_member_object_pointer
449  : public __is_member_object_pointer_helper<
450  typename remove_cv<_Tp>::type>::type
451  { };
452 
453  template<typename>
454  struct __is_member_function_pointer_helper
455  : public false_type { };
456 
457  template<typename _Tp, typename _Cp>
458  struct __is_member_function_pointer_helper<_Tp _Cp::*>
459  : public integral_constant<bool, is_function<_Tp>::value> { };
460 
461 
462  template<typename _Tp>
463  struct is_member_function_pointer
464  : public __is_member_function_pointer_helper<
465  typename remove_cv<_Tp>::type>::type
466  { };
467 
468 
469  template<typename _Tp>
470  struct is_enum
471  : public integral_constant<bool, __is_enum(_Tp)>
472  { };
473 
474 
475  template<typename _Tp>
476  struct is_union
477  : public integral_constant<bool, __is_union(_Tp)>
478  { };
479 
480 
481  template<typename _Tp>
482  struct is_class
483  : public integral_constant<bool, __is_class(_Tp)>
484  { };
485 
486 
487  template<typename>
488  struct is_function
489  : public false_type { };
490 
491  template<typename _Res, typename... _ArgTypes>
492  struct is_function<_Res(_ArgTypes...)>
493  : public true_type { };
494 
495  template<typename _Res, typename... _ArgTypes>
496  struct is_function<_Res(_ArgTypes...) &>
497  : public true_type { };
498 
499  template<typename _Res, typename... _ArgTypes>
500  struct is_function<_Res(_ArgTypes...) &&>
501  : public true_type { };
502 
503  template<typename _Res, typename... _ArgTypes>
504  struct is_function<_Res(_ArgTypes......)>
505  : public true_type { };
506 
507  template<typename _Res, typename... _ArgTypes>
508  struct is_function<_Res(_ArgTypes......) &>
509  : public true_type { };
510 
511  template<typename _Res, typename... _ArgTypes>
512  struct is_function<_Res(_ArgTypes......) &&>
513  : public true_type { };
514 
515  template<typename _Res, typename... _ArgTypes>
516  struct is_function<_Res(_ArgTypes...) const>
517  : public true_type { };
518 
519  template<typename _Res, typename... _ArgTypes>
520  struct is_function<_Res(_ArgTypes...) const &>
521  : public true_type { };
522 
523  template<typename _Res, typename... _ArgTypes>
524  struct is_function<_Res(_ArgTypes...) const &&>
525  : public true_type { };
526 
527  template<typename _Res, typename... _ArgTypes>
528  struct is_function<_Res(_ArgTypes......) const>
529  : public true_type { };
530 
531  template<typename _Res, typename... _ArgTypes>
532  struct is_function<_Res(_ArgTypes......) const &>
533  : public true_type { };
534 
535  template<typename _Res, typename... _ArgTypes>
536  struct is_function<_Res(_ArgTypes......) const &&>
537  : public true_type { };
538 
539  template<typename _Res, typename... _ArgTypes>
540  struct is_function<_Res(_ArgTypes...) volatile>
541  : public true_type { };
542 
543  template<typename _Res, typename... _ArgTypes>
544  struct is_function<_Res(_ArgTypes...) volatile &>
545  : public true_type { };
546 
547  template<typename _Res, typename... _ArgTypes>
548  struct is_function<_Res(_ArgTypes...) volatile &&>
549  : public true_type { };
550 
551  template<typename _Res, typename... _ArgTypes>
552  struct is_function<_Res(_ArgTypes......) volatile>
553  : public true_type { };
554 
555  template<typename _Res, typename... _ArgTypes>
556  struct is_function<_Res(_ArgTypes......) volatile &>
557  : public true_type { };
558 
559  template<typename _Res, typename... _ArgTypes>
560  struct is_function<_Res(_ArgTypes......) volatile &&>
561  : public true_type { };
562 
563  template<typename _Res, typename... _ArgTypes>
564  struct is_function<_Res(_ArgTypes...) const volatile>
565  : public true_type { };
566 
567  template<typename _Res, typename... _ArgTypes>
568  struct is_function<_Res(_ArgTypes...) const volatile &>
569  : public true_type { };
570 
571  template<typename _Res, typename... _ArgTypes>
572  struct is_function<_Res(_ArgTypes...) const volatile &&>
573  : public true_type { };
574 
575  template<typename _Res, typename... _ArgTypes>
576  struct is_function<_Res(_ArgTypes......) const volatile>
577  : public true_type { };
578 
579  template<typename _Res, typename... _ArgTypes>
580  struct is_function<_Res(_ArgTypes......) const volatile &>
581  : public true_type { };
582 
583  template<typename _Res, typename... _ArgTypes>
584  struct is_function<_Res(_ArgTypes......) const volatile &&>
585  : public true_type { };
586 
587  template<typename>
588  struct __is_null_pointer_helper
589  : public false_type { };
590 
591  template<>
592  struct __is_null_pointer_helper<std::nullptr_t>
593  : public true_type { };
594 
595 
596  template<typename _Tp>
597  struct is_null_pointer
598  : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
599  { };
600 
601 
602  template<typename _Tp>
603  struct __is_nullptr_t
604  : public is_null_pointer<_Tp>
605  { };
606 
607 
608 
609 
610  template<typename _Tp>
611  struct is_reference
612  : public __or_<is_lvalue_reference<_Tp>,
613  is_rvalue_reference<_Tp>>::type
614  { };
615 
616 
617  template<typename _Tp>
618  struct is_arithmetic
619  : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
620  { };
621 
622 
623  template<typename _Tp>
624  struct is_fundamental
625  : public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
626  is_null_pointer<_Tp>>::type
627  { };
628 
629 
630  template<typename _Tp>
631  struct is_object
632  : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
633  is_void<_Tp>>>::type
634  { };
635 
636  template<typename>
637  struct is_member_pointer;
638 
639 
640  template<typename _Tp>
641  struct is_scalar
642  : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
643  is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
644  { };
645 
646 
647  template<typename _Tp>
648  struct is_compound
649  : public integral_constant<bool, !is_fundamental<_Tp>::value> { };
650 
651  template<typename _Tp>
652  struct __is_member_pointer_helper
653  : public false_type { };
654 
655  template<typename _Tp, typename _Cp>
656  struct __is_member_pointer_helper<_Tp _Cp::*>
657  : public true_type { };
658 
659 
660  template<typename _Tp>
661  struct is_member_pointer
662  : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
663  { };
664 
665 
666 
667  template<typename _Tp>
668  struct __is_referenceable
669  : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
670  { };
671 
672  template<typename _Res, typename... _Args>
673  struct __is_referenceable<_Res(_Args...)>
674  : public true_type
675  { };
676 
677  template<typename _Res, typename... _Args>
678  struct __is_referenceable<_Res(_Args......)>
679  : public true_type
680  { };
681 
682 
683 
684 
685  template<typename>
686  struct is_const
687  : public false_type { };
688 
689  template<typename _Tp>
690  struct is_const<_Tp const>
691  : public true_type { };
692 
693 
694  template<typename>
695  struct is_volatile
696  : public false_type { };
697 
698  template<typename _Tp>
699  struct is_volatile<_Tp volatile>
700  : public true_type { };
701 
702 
703  template<typename _Tp>
704  struct is_trivial
705  : public integral_constant<bool, __is_trivial(_Tp)>
706  { };
707 
708 
709 
710 
711  template<typename _Tp>
712  struct is_standard_layout
713  : public integral_constant<bool, __is_standard_layout(_Tp)>
714  { };
715 
716 
717 
718  template<typename _Tp>
719  struct is_pod
720  : public integral_constant<bool, __is_pod(_Tp)>
721  { };
722 
723 
724  template<typename _Tp>
725  struct is_literal_type
726  : public integral_constant<bool, __is_literal_type(_Tp)>
727  { };
728 
729 
730  template<typename _Tp>
731  struct is_empty
732  : public integral_constant<bool, __is_empty(_Tp)>
733  { };
734 
735 
736  template<typename _Tp>
737  struct is_polymorphic
738  : public integral_constant<bool, __is_polymorphic(_Tp)>
739  { };
740 
741 
742  template<typename _Tp>
743  struct is_abstract
744  : public integral_constant<bool, __is_abstract(_Tp)>
745  { };
746 
747  template<typename _Tp,
748  bool = is_arithmetic<_Tp>::value>
749  struct __is_signed_helper
750  : public false_type { };
751 
752  template<typename _Tp>
753  struct __is_signed_helper<_Tp, true>
754  : public integral_constant<bool, _Tp(-1) < _Tp(0)>
755  { };
756 
757 
758  template<typename _Tp>
759  struct is_signed
760  : public __is_signed_helper<_Tp>::type
761  { };
762 
763 
764  template<typename _Tp>
765  struct is_unsigned
766  : public __and_<is_arithmetic<_Tp>, __not_<is_signed<_Tp>>>::type
767  { };
768 
769 
770 
771 
772  template<typename>
773  struct add_rvalue_reference;
774 
775 
776 
777 
778 
779  template<typename _Tp>
780  typename add_rvalue_reference<_Tp>::type declval() noexcept;
781 
782  template<typename, unsigned = 0>
783  struct extent;
784 
785  template<typename>
786  struct remove_all_extents;
787 
788  template<typename _Tp>
789  struct __is_array_known_bounds
790  : public integral_constant<bool, (extent<_Tp>::value > 0)>
791  { };
792 
793  template<typename _Tp>
794  struct __is_array_unknown_bounds
795  : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>::type
796  { };
797 
798 
799 
800 
801 
802 
803  struct __do_is_destructible_impl
804  {
805  template<typename _Tp, typename = decltype(declval<_Tp&>().~_Tp())>
806  static true_type __test(int);
807 
808  template<typename>
809  static false_type __test(...);
810  };
811 
812  template<typename _Tp>
813  struct __is_destructible_impl
814  : public __do_is_destructible_impl
815  {
816  typedef decltype(__test<_Tp>(0)) type;
817  };
818 
819  template<typename _Tp,
820  bool = __or_<is_void<_Tp>,
821  __is_array_unknown_bounds<_Tp>,
822  is_function<_Tp>>::value,
823  bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
824  struct __is_destructible_safe;
825 
826  template<typename _Tp>
827  struct __is_destructible_safe<_Tp, false, false>
828  : public __is_destructible_impl<typename
829  remove_all_extents<_Tp>::type>::type
830  { };
831 
832  template<typename _Tp>
833  struct __is_destructible_safe<_Tp, true, false>
834  : public false_type { };
835 
836  template<typename _Tp>
837  struct __is_destructible_safe<_Tp, false, true>
838  : public true_type { };
839 
840 
841  template<typename _Tp>
842  struct is_destructible
843  : public __is_destructible_safe<_Tp>::type
844  { };
845 
846 
847 
848 
849 
850  struct __do_is_nt_destructible_impl
851  {
852  template<typename _Tp>
853  static integral_constant<bool, noexcept(declval<_Tp&>().~_Tp())>
854  __test(int);
855 
856  template<typename>
857  static false_type __test(...);
858  };
859 
860  template<typename _Tp>
861  struct __is_nt_destructible_impl
862  : public __do_is_nt_destructible_impl
863  {
864  typedef decltype(__test<_Tp>(0)) type;
865  };
866 
867  template<typename _Tp,
868  bool = __or_<is_void<_Tp>,
869  __is_array_unknown_bounds<_Tp>,
870  is_function<_Tp>>::value,
871  bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
872  struct __is_nt_destructible_safe;
873 
874  template<typename _Tp>
875  struct __is_nt_destructible_safe<_Tp, false, false>
876  : public __is_nt_destructible_impl<typename
877  remove_all_extents<_Tp>::type>::type
878  { };
879 
880  template<typename _Tp>
881  struct __is_nt_destructible_safe<_Tp, true, false>
882  : public false_type { };
883 
884  template<typename _Tp>
885  struct __is_nt_destructible_safe<_Tp, false, true>
886  : public true_type { };
887 
888 
889  template<typename _Tp>
890  struct is_nothrow_destructible
891  : public __is_nt_destructible_safe<_Tp>::type
892  { };
893 
894  struct __do_is_default_constructible_impl
895  {
896  template<typename _Tp, typename = decltype(_Tp())>
897  static true_type __test(int);
898 
899  template<typename>
900  static false_type __test(...);
901  };
902 
903  template<typename _Tp>
904  struct __is_default_constructible_impl
905  : public __do_is_default_constructible_impl
906  {
907  typedef decltype(__test<_Tp>(0)) type;
908  };
909 
910  template<typename _Tp>
911  struct __is_default_constructible_atom
912  : public __and_<__not_<is_void<_Tp>>,
913  __is_default_constructible_impl<_Tp>>::type
914  { };
915 
916  template<typename _Tp, bool = is_array<_Tp>::value>
917  struct __is_default_constructible_safe;
918 
919 
920 
921 
922 
923 
924  template<typename _Tp>
925  struct __is_default_constructible_safe<_Tp, true>
926  : public __and_<__is_array_known_bounds<_Tp>,
927  __is_default_constructible_atom<typename
928  remove_all_extents<_Tp>::type>>::type
929  { };
930 
931  template<typename _Tp>
932  struct __is_default_constructible_safe<_Tp, false>
933  : public __is_default_constructible_atom<_Tp>::type
934  { };
935 
936 
937  template<typename _Tp>
938  struct is_default_constructible
939  : public __is_default_constructible_safe<_Tp>::type
940  { };
941 # 850 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
942  struct __do_is_static_castable_impl
943  {
944  template<typename _From, typename _To, typename
945  = decltype(static_cast<_To>(declval<_From>()))>
946  static true_type __test(int);
947 
948  template<typename, typename>
949  static false_type __test(...);
950  };
951 
952  template<typename _From, typename _To>
953  struct __is_static_castable_impl
954  : public __do_is_static_castable_impl
955  {
956  typedef decltype(__test<_From, _To>(0)) type;
957  };
958 
959  template<typename _From, typename _To>
960  struct __is_static_castable_safe
961  : public __is_static_castable_impl<_From, _To>::type
962  { };
963 
964 
965  template<typename _From, typename _To>
966  struct __is_static_castable
967  : public integral_constant<bool, (__is_static_castable_safe<
968  _From, _To>::value)>
969  { };
970 
971 
972 
973 
974 
975 
976  struct __do_is_direct_constructible_impl
977  {
978  template<typename _Tp, typename _Arg, typename
979  = decltype(::new _Tp(declval<_Arg>()))>
980  static true_type __test(int);
981 
982  template<typename, typename>
983  static false_type __test(...);
984  };
985 
986  template<typename _Tp, typename _Arg>
987  struct __is_direct_constructible_impl
988  : public __do_is_direct_constructible_impl
989  {
990  typedef decltype(__test<_Tp, _Arg>(0)) type;
991  };
992 
993  template<typename _Tp, typename _Arg>
994  struct __is_direct_constructible_new_safe
995  : public __and_<is_destructible<_Tp>,
996  __is_direct_constructible_impl<_Tp, _Arg>>::type
997  { };
998 
999  template<typename, typename>
1000  struct is_same;
1001 
1002  template<typename, typename>
1003  struct is_base_of;
1004 
1005  template<typename>
1006  struct remove_reference;
1007 
1008  template<typename _From, typename _To, bool
1009  = __not_<__or_<is_void<_From>,
1010  is_function<_From>>>::value>
1011  struct __is_base_to_derived_ref;
1012 
1013 
1014 
1015  template<typename _From, typename _To>
1016  struct __is_base_to_derived_ref<_From, _To, true>
1017  {
1018  typedef typename remove_cv<typename remove_reference<_From
1019  >::type>::type __src_t;
1020  typedef typename remove_cv<typename remove_reference<_To
1021  >::type>::type __dst_t;
1022  typedef __and_<__not_<is_same<__src_t, __dst_t>>,
1023  is_base_of<__src_t, __dst_t>> type;
1024  static constexpr bool value = type::value;
1025  };
1026 
1027  template<typename _From, typename _To>
1028  struct __is_base_to_derived_ref<_From, _To, false>
1029  : public false_type
1030  { };
1031 
1032  template<typename _From, typename _To, bool
1033  = __and_<is_lvalue_reference<_From>,
1034  is_rvalue_reference<_To>>::value>
1035  struct __is_lvalue_to_rvalue_ref;
1036 
1037 
1038 
1039  template<typename _From, typename _To>
1040  struct __is_lvalue_to_rvalue_ref<_From, _To, true>
1041  {
1042  typedef typename remove_cv<typename remove_reference<
1043  _From>::type>::type __src_t;
1044  typedef typename remove_cv<typename remove_reference<
1045  _To>::type>::type __dst_t;
1046  typedef __and_<__not_<is_function<__src_t>>,
1047  __or_<is_same<__src_t, __dst_t>,
1048  is_base_of<__dst_t, __src_t>>> type;
1049  static constexpr bool value = type::value;
1050  };
1051 
1052  template<typename _From, typename _To>
1053  struct __is_lvalue_to_rvalue_ref<_From, _To, false>
1054  : public false_type
1055  { };
1056 
1057 
1058 
1059 
1060 
1061 
1062 
1063  template<typename _Tp, typename _Arg>
1064  struct __is_direct_constructible_ref_cast
1065  : public __and_<__is_static_castable<_Arg, _Tp>,
1066  __not_<__or_<__is_base_to_derived_ref<_Arg, _Tp>,
1067  __is_lvalue_to_rvalue_ref<_Arg, _Tp>
1068  >>>::type
1069  { };
1070 
1071  template<typename _Tp, typename _Arg>
1072  struct __is_direct_constructible_new
1073  : public conditional<is_reference<_Tp>::value,
1074  __is_direct_constructible_ref_cast<_Tp, _Arg>,
1075  __is_direct_constructible_new_safe<_Tp, _Arg>
1076  >::type
1077  { };
1078 
1079  template<typename _Tp, typename _Arg>
1080  struct __is_direct_constructible
1081  : public __is_direct_constructible_new<_Tp, _Arg>::type
1082  { };
1083 
1084 
1085 
1086 
1087 
1088 
1089  struct __do_is_nary_constructible_impl
1090  {
1091  template<typename _Tp, typename... _Args, typename
1092  = decltype(_Tp(declval<_Args>()...))>
1093  static true_type __test(int);
1094 
1095  template<typename, typename...>
1096  static false_type __test(...);
1097  };
1098 
1099  template<typename _Tp, typename... _Args>
1100  struct __is_nary_constructible_impl
1101  : public __do_is_nary_constructible_impl
1102  {
1103  typedef decltype(__test<_Tp, _Args...>(0)) type;
1104  };
1105 
1106  template<typename _Tp, typename... _Args>
1107  struct __is_nary_constructible
1108  : public __is_nary_constructible_impl<_Tp, _Args...>::type
1109  {
1110  static_assert(sizeof...(_Args) > 1,
1111  "Only useful for > 1 arguments");
1112  };
1113 
1114  template<typename _Tp, typename... _Args>
1115  struct __is_constructible_impl
1116  : public __is_nary_constructible<_Tp, _Args...>
1117  { };
1118 
1119  template<typename _Tp, typename _Arg>
1120  struct __is_constructible_impl<_Tp, _Arg>
1121  : public __is_direct_constructible<_Tp, _Arg>
1122  { };
1123 
1124  template<typename _Tp>
1125  struct __is_constructible_impl<_Tp>
1126  : public is_default_constructible<_Tp>
1127  { };
1128 
1129 
1130  template<typename _Tp, typename... _Args>
1131  struct is_constructible
1132  : public __is_constructible_impl<_Tp, _Args...>::type
1133  { };
1134 
1135  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1136  struct __is_copy_constructible_impl;
1137 
1138  template<typename _Tp>
1139  struct __is_copy_constructible_impl<_Tp, false>
1140  : public false_type { };
1141 
1142  template<typename _Tp>
1143  struct __is_copy_constructible_impl<_Tp, true>
1144  : public is_constructible<_Tp, const _Tp&>
1145  { };
1146 
1147 
1148  template<typename _Tp>
1149  struct is_copy_constructible
1150  : public __is_copy_constructible_impl<_Tp>
1151  { };
1152 
1153  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1154  struct __is_move_constructible_impl;
1155 
1156  template<typename _Tp>
1157  struct __is_move_constructible_impl<_Tp, false>
1158  : public false_type { };
1159 
1160  template<typename _Tp>
1161  struct __is_move_constructible_impl<_Tp, true>
1162  : public is_constructible<_Tp, _Tp&&>
1163  { };
1164 
1165 
1166  template<typename _Tp>
1167  struct is_move_constructible
1168  : public __is_move_constructible_impl<_Tp>
1169  { };
1170 
1171  template<typename _Tp>
1172  struct __is_nt_default_constructible_atom
1173  : public integral_constant<bool, noexcept(_Tp())>
1174  { };
1175 
1176  template<typename _Tp, bool = is_array<_Tp>::value>
1177  struct __is_nt_default_constructible_impl;
1178 
1179  template<typename _Tp>
1180  struct __is_nt_default_constructible_impl<_Tp, true>
1181  : public __and_<__is_array_known_bounds<_Tp>,
1182  __is_nt_default_constructible_atom<typename
1183  remove_all_extents<_Tp>::type>>::type
1184  { };
1185 
1186  template<typename _Tp>
1187  struct __is_nt_default_constructible_impl<_Tp, false>
1188  : public __is_nt_default_constructible_atom<_Tp>
1189  { };
1190 
1191 
1192  template<typename _Tp>
1193  struct is_nothrow_default_constructible
1194  : public __and_<is_default_constructible<_Tp>,
1195  __is_nt_default_constructible_impl<_Tp>>::type
1196  { };
1197 
1198  template<typename _Tp, typename... _Args>
1199  struct __is_nt_constructible_impl
1200  : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>
1201  { };
1202 
1203  template<typename _Tp, typename _Arg>
1204  struct __is_nt_constructible_impl<_Tp, _Arg>
1205  : public integral_constant<bool,
1206  noexcept(static_cast<_Tp>(declval<_Arg>()))>
1207  { };
1208 
1209  template<typename _Tp>
1210  struct __is_nt_constructible_impl<_Tp>
1211  : public is_nothrow_default_constructible<_Tp>
1212  { };
1213 
1214 
1215  template<typename _Tp, typename... _Args>
1216  struct is_nothrow_constructible
1217  : public __and_<is_constructible<_Tp, _Args...>,
1218  __is_nt_constructible_impl<_Tp, _Args...>>::type
1219  { };
1220 
1221  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1222  struct __is_nothrow_copy_constructible_impl;
1223 
1224  template<typename _Tp>
1225  struct __is_nothrow_copy_constructible_impl<_Tp, false>
1226  : public false_type { };
1227 
1228  template<typename _Tp>
1229  struct __is_nothrow_copy_constructible_impl<_Tp, true>
1230  : public is_nothrow_constructible<_Tp, const _Tp&>
1231  { };
1232 
1233 
1234  template<typename _Tp>
1235  struct is_nothrow_copy_constructible
1236  : public __is_nothrow_copy_constructible_impl<_Tp>
1237  { };
1238 
1239  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1240  struct __is_nothrow_move_constructible_impl;
1241 
1242  template<typename _Tp>
1243  struct __is_nothrow_move_constructible_impl<_Tp, false>
1244  : public false_type { };
1245 
1246  template<typename _Tp>
1247  struct __is_nothrow_move_constructible_impl<_Tp, true>
1248  : public is_nothrow_constructible<_Tp, _Tp&&>
1249  { };
1250 
1251 
1252  template<typename _Tp>
1253  struct is_nothrow_move_constructible
1254  : public __is_nothrow_move_constructible_impl<_Tp>
1255  { };
1256 
1257  template<typename _Tp, typename _Up>
1258  class __is_assignable_helper
1259  {
1260  template<typename _Tp1, typename _Up1,
1261  typename = decltype(declval<_Tp1>() = declval<_Up1>())>
1262  static true_type
1263  __test(int);
1264 
1265  template<typename, typename>
1266  static false_type
1267  __test(...);
1268 
1269  public:
1270  typedef decltype(__test<_Tp, _Up>(0)) type;
1271  };
1272 
1273 
1274  template<typename _Tp, typename _Up>
1275  struct is_assignable
1276  : public __is_assignable_helper<_Tp, _Up>::type
1277  { };
1278 
1279  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1280  struct __is_copy_assignable_impl;
1281 
1282  template<typename _Tp>
1283  struct __is_copy_assignable_impl<_Tp, false>
1284  : public false_type { };
1285 
1286  template<typename _Tp>
1287  struct __is_copy_assignable_impl<_Tp, true>
1288  : public is_assignable<_Tp&, const _Tp&>
1289  { };
1290 
1291 
1292  template<typename _Tp>
1293  struct is_copy_assignable
1294  : public __is_copy_assignable_impl<_Tp>
1295  { };
1296 
1297  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1298  struct __is_move_assignable_impl;
1299 
1300  template<typename _Tp>
1301  struct __is_move_assignable_impl<_Tp, false>
1302  : public false_type { };
1303 
1304  template<typename _Tp>
1305  struct __is_move_assignable_impl<_Tp, true>
1306  : public is_assignable<_Tp&, _Tp&&>
1307  { };
1308 
1309 
1310  template<typename _Tp>
1311  struct is_move_assignable
1312  : public __is_move_assignable_impl<_Tp>
1313  { };
1314 
1315  template<typename _Tp, typename _Up>
1316  struct __is_nt_assignable_impl
1317  : public integral_constant<bool, noexcept(declval<_Tp>() = declval<_Up>())>
1318  { };
1319 
1320 
1321  template<typename _Tp, typename _Up>
1322  struct is_nothrow_assignable
1323  : public __and_<is_assignable<_Tp, _Up>,
1324  __is_nt_assignable_impl<_Tp, _Up>>::type
1325  { };
1326 
1327  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1328  struct __is_nt_copy_assignable_impl;
1329 
1330  template<typename _Tp>
1331  struct __is_nt_copy_assignable_impl<_Tp, false>
1332  : public false_type { };
1333 
1334  template<typename _Tp>
1335  struct __is_nt_copy_assignable_impl<_Tp, true>
1336  : public is_nothrow_assignable<_Tp&, const _Tp&>
1337  { };
1338 
1339 
1340  template<typename _Tp>
1341  struct is_nothrow_copy_assignable
1342  : public __is_nt_copy_assignable_impl<_Tp>
1343  { };
1344 
1345  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1346  struct __is_nt_move_assignable_impl;
1347 
1348  template<typename _Tp>
1349  struct __is_nt_move_assignable_impl<_Tp, false>
1350  : public false_type { };
1351 
1352  template<typename _Tp>
1353  struct __is_nt_move_assignable_impl<_Tp, true>
1354  : public is_nothrow_assignable<_Tp&, _Tp&&>
1355  { };
1356 
1357 
1358  template<typename _Tp>
1359  struct is_nothrow_move_assignable
1360  : public __is_nt_move_assignable_impl<_Tp>
1361  { };
1362 # 1286 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1363  template<typename _Tp>
1364  struct is_trivially_destructible
1365  : public __and_<is_destructible<_Tp>, integral_constant<bool,
1366  __has_trivial_destructor(_Tp)>>::type
1367  { };
1368 
1369 
1370  template<typename _Tp>
1371  struct has_trivial_default_constructor
1372  : public integral_constant<bool, __has_trivial_constructor(_Tp)>
1373  { };
1374 
1375 
1376  template<typename _Tp>
1377  struct has_trivial_copy_constructor
1378  : public integral_constant<bool, __has_trivial_copy(_Tp)>
1379  { };
1380 
1381 
1382  template<typename _Tp>
1383  struct has_trivial_copy_assign
1384  : public integral_constant<bool, __has_trivial_assign(_Tp)>
1385  { };
1386 
1387 
1388  template<typename _Tp>
1389  struct has_virtual_destructor
1390  : public integral_constant<bool, __has_virtual_destructor(_Tp)>
1391  { };
1392 
1393 
1394 
1395 
1396 
1397  template<typename _Tp>
1398  struct alignment_of
1399  : public integral_constant<std::size_t, __alignof__(_Tp)> { };
1400 
1401 
1402  template<typename>
1403  struct rank
1404  : public integral_constant<std::size_t, 0> { };
1405 
1406  template<typename _Tp, std::size_t _Size>
1407  struct rank<_Tp[_Size]>
1408  : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
1409 
1410  template<typename _Tp>
1411  struct rank<_Tp[]>
1412  : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
1413 
1414 
1415  template<typename, unsigned _Uint>
1416  struct extent
1417  : public integral_constant<std::size_t, 0> { };
1418 
1419  template<typename _Tp, unsigned _Uint, std::size_t _Size>
1420  struct extent<_Tp[_Size], _Uint>
1421  : public integral_constant<std::size_t,
1422  _Uint == 0 ? _Size : extent<_Tp,
1423  _Uint - 1>::value>
1424  { };
1425 
1426  template<typename _Tp, unsigned _Uint>
1427  struct extent<_Tp[], _Uint>
1428  : public integral_constant<std::size_t,
1429  _Uint == 0 ? 0 : extent<_Tp,
1430  _Uint - 1>::value>
1431  { };
1432 
1433 
1434 
1435 
1436 
1437  template<typename, typename>
1438  struct is_same
1439  : public false_type { };
1440 
1441  template<typename _Tp>
1442  struct is_same<_Tp, _Tp>
1443  : public true_type { };
1444 
1445 
1446  template<typename _Base, typename _Derived>
1447  struct is_base_of
1448  : public integral_constant<bool, __is_base_of(_Base, _Derived)>
1449  { };
1450 
1451  template<typename _From, typename _To,
1452  bool = __or_<is_void<_From>, is_function<_To>,
1453  is_array<_To>>::value>
1454  struct __is_convertible_helper
1455  { typedef typename is_void<_To>::type type; };
1456 
1457  template<typename _From, typename _To>
1458  class __is_convertible_helper<_From, _To, false>
1459  {
1460  template<typename _To1>
1461  static void __test_aux(_To1);
1462 
1463  template<typename _From1, typename _To1,
1464  typename = decltype(__test_aux<_To1>(std::declval<_From1>()))>
1465  static true_type
1466  __test(int);
1467 
1468  template<typename, typename>
1469  static false_type
1470  __test(...);
1471 
1472  public:
1473  typedef decltype(__test<_From, _To>(0)) type;
1474  };
1475 
1476 
1477 
1478  template<typename _From, typename _To>
1479  struct is_convertible
1480  : public __is_convertible_helper<_From, _To>::type
1481  { };
1482 
1483 
1484 
1485 
1486 
1487  template<typename _Tp>
1488  struct remove_const
1489  { typedef _Tp type; };
1490 
1491  template<typename _Tp>
1492  struct remove_const<_Tp const>
1493  { typedef _Tp type; };
1494 
1495 
1496  template<typename _Tp>
1497  struct remove_volatile
1498  { typedef _Tp type; };
1499 
1500  template<typename _Tp>
1501  struct remove_volatile<_Tp volatile>
1502  { typedef _Tp type; };
1503 
1504 
1505  template<typename _Tp>
1506  struct remove_cv
1507  {
1508  typedef typename
1509  remove_const<typename remove_volatile<_Tp>::type>::type type;
1510  };
1511 
1512 
1513  template<typename _Tp>
1514  struct add_const
1515  { typedef _Tp const type; };
1516 
1517 
1518  template<typename _Tp>
1519  struct add_volatile
1520  { typedef _Tp volatile type; };
1521 
1522 
1523  template<typename _Tp>
1524  struct add_cv
1525  {
1526  typedef typename
1527  add_const<typename add_volatile<_Tp>::type>::type type;
1528  };
1529 # 1482 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1530  template<typename _Tp>
1531  struct remove_reference
1532  { typedef _Tp type; };
1533 
1534  template<typename _Tp>
1535  struct remove_reference<_Tp&>
1536  { typedef _Tp type; };
1537 
1538  template<typename _Tp>
1539  struct remove_reference<_Tp&&>
1540  { typedef _Tp type; };
1541 
1542  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1543  struct __add_lvalue_reference_helper
1544  { typedef _Tp type; };
1545 
1546  template<typename _Tp>
1547  struct __add_lvalue_reference_helper<_Tp, true>
1548  { typedef _Tp& type; };
1549 
1550 
1551  template<typename _Tp>
1552  struct add_lvalue_reference
1553  : public __add_lvalue_reference_helper<_Tp>
1554  { };
1555 
1556  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
1557  struct __add_rvalue_reference_helper
1558  { typedef _Tp type; };
1559 
1560  template<typename _Tp>
1561  struct __add_rvalue_reference_helper<_Tp, true>
1562  { typedef _Tp&& type; };
1563 
1564 
1565  template<typename _Tp>
1566  struct add_rvalue_reference
1567  : public __add_rvalue_reference_helper<_Tp>
1568  { };
1569 # 1539 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1570  template<typename _Unqualified, bool _IsConst, bool _IsVol>
1571  struct __cv_selector;
1572 
1573  template<typename _Unqualified>
1574  struct __cv_selector<_Unqualified, false, false>
1575  { typedef _Unqualified __type; };
1576 
1577  template<typename _Unqualified>
1578  struct __cv_selector<_Unqualified, false, true>
1579  { typedef volatile _Unqualified __type; };
1580 
1581  template<typename _Unqualified>
1582  struct __cv_selector<_Unqualified, true, false>
1583  { typedef const _Unqualified __type; };
1584 
1585  template<typename _Unqualified>
1586  struct __cv_selector<_Unqualified, true, true>
1587  { typedef const volatile _Unqualified __type; };
1588 
1589  template<typename _Qualified, typename _Unqualified,
1590  bool _IsConst = is_const<_Qualified>::value,
1591  bool _IsVol = is_volatile<_Qualified>::value>
1592  class __match_cv_qualifiers
1593  {
1594  typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match;
1595 
1596  public:
1597  typedef typename __match::__type __type;
1598  };
1599 
1600 
1601  template<typename _Tp>
1602  struct __make_unsigned
1603  { typedef _Tp __type; };
1604 
1605  template<>
1606  struct __make_unsigned<char>
1607  { typedef unsigned char __type; };
1608 
1609  template<>
1610  struct __make_unsigned<signed char>
1611  { typedef unsigned char __type; };
1612 
1613  template<>
1614  struct __make_unsigned<short>
1615  { typedef unsigned short __type; };
1616 
1617  template<>
1618  struct __make_unsigned<int>
1619  { typedef unsigned int __type; };
1620 
1621  template<>
1622  struct __make_unsigned<long>
1623  { typedef unsigned long __type; };
1624 
1625  template<>
1626  struct __make_unsigned<long long>
1627  { typedef unsigned long long __type; };
1628 
1629 
1630  template<>
1631  struct __make_unsigned<wchar_t> : __make_unsigned<int>
1632  { };
1633 # 1611 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1634  template<typename _Tp,
1635  bool _IsInt = is_integral<_Tp>::value,
1636  bool _IsEnum = is_enum<_Tp>::value>
1637  class __make_unsigned_selector;
1638 
1639  template<typename _Tp>
1640  class __make_unsigned_selector<_Tp, true, false>
1641  {
1642  typedef __make_unsigned<typename remove_cv<_Tp>::type> __unsignedt;
1643  typedef typename __unsignedt::__type __unsigned_type;
1644  typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned;
1645 
1646  public:
1647  typedef typename __cv_unsigned::__type __type;
1648  };
1649 
1650  template<typename _Tp>
1651  class __make_unsigned_selector<_Tp, false, true>
1652  {
1653 
1654  typedef unsigned char __smallest;
1655  static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest);
1656  static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short);
1657  static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int);
1658  typedef conditional<__b2, unsigned int, unsigned long> __cond2;
1659  typedef typename __cond2::type __cond2_type;
1660  typedef conditional<__b1, unsigned short, __cond2_type> __cond1;
1661  typedef typename __cond1::type __cond1_type;
1662 
1663  public:
1664  typedef typename conditional<__b0, __smallest, __cond1_type>::type __type;
1665  };
1666 
1667 
1668 
1669 
1670 
1671  template<typename _Tp>
1672  struct make_unsigned
1673  { typedef typename __make_unsigned_selector<_Tp>::__type type; };
1674 
1675 
1676  template<>
1677  struct make_unsigned<bool>;
1678 
1679 
1680 
1681  template<typename _Tp>
1682  struct __make_signed
1683  { typedef _Tp __type; };
1684 
1685  template<>
1686  struct __make_signed<char>
1687  { typedef signed char __type; };
1688 
1689  template<>
1690  struct __make_signed<unsigned char>
1691  { typedef signed char __type; };
1692 
1693  template<>
1694  struct __make_signed<unsigned short>
1695  { typedef signed short __type; };
1696 
1697  template<>
1698  struct __make_signed<unsigned int>
1699  { typedef signed int __type; };
1700 
1701  template<>
1702  struct __make_signed<unsigned long>
1703  { typedef signed long __type; };
1704 
1705  template<>
1706  struct __make_signed<unsigned long long>
1707  { typedef signed long long __type; };
1708 # 1693 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1709  template<>
1710  struct __make_signed<char16_t> : __make_signed<uint_least16_t>
1711  { };
1712  template<>
1713  struct __make_signed<char32_t> : __make_signed<uint_least32_t>
1714  { };
1715 # 1708 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1716  template<typename _Tp,
1717  bool _IsInt = is_integral<_Tp>::value,
1718  bool _IsEnum = is_enum<_Tp>::value>
1719  class __make_signed_selector;
1720 
1721  template<typename _Tp>
1722  class __make_signed_selector<_Tp, true, false>
1723  {
1724  typedef __make_signed<typename remove_cv<_Tp>::type> __signedt;
1725  typedef typename __signedt::__type __signed_type;
1726  typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed;
1727 
1728  public:
1729  typedef typename __cv_signed::__type __type;
1730  };
1731 
1732  template<typename _Tp>
1733  class __make_signed_selector<_Tp, false, true>
1734  {
1735 
1736  typedef signed char __smallest;
1737  static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest);
1738  static const bool __b1 = sizeof(_Tp) <= sizeof(signed short);
1739  static const bool __b2 = sizeof(_Tp) <= sizeof(signed int);
1740  typedef conditional<__b2, signed int, signed long> __cond2;
1741  typedef typename __cond2::type __cond2_type;
1742  typedef conditional<__b1, signed short, __cond2_type> __cond1;
1743  typedef typename __cond1::type __cond1_type;
1744 
1745  public:
1746  typedef typename conditional<__b0, __smallest, __cond1_type>::type __type;
1747  };
1748 
1749 
1750 
1751 
1752 
1753  template<typename _Tp>
1754  struct make_signed
1755  { typedef typename __make_signed_selector<_Tp>::__type type; };
1756 
1757 
1758  template<>
1759  struct make_signed<bool>;
1760 # 1766 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1761  template<typename _Tp>
1762  struct remove_extent
1763  { typedef _Tp type; };
1764 
1765  template<typename _Tp, std::size_t _Size>
1766  struct remove_extent<_Tp[_Size]>
1767  { typedef _Tp type; };
1768 
1769  template<typename _Tp>
1770  struct remove_extent<_Tp[]>
1771  { typedef _Tp type; };
1772 
1773 
1774  template<typename _Tp>
1775  struct remove_all_extents
1776  { typedef _Tp type; };
1777 
1778  template<typename _Tp, std::size_t _Size>
1779  struct remove_all_extents<_Tp[_Size]>
1780  { typedef typename remove_all_extents<_Tp>::type type; };
1781 
1782  template<typename _Tp>
1783  struct remove_all_extents<_Tp[]>
1784  { typedef typename remove_all_extents<_Tp>::type type; };
1785 # 1803 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1786  template<typename _Tp, typename>
1787  struct __remove_pointer_helper
1788  { typedef _Tp type; };
1789 
1790  template<typename _Tp, typename _Up>
1791  struct __remove_pointer_helper<_Tp, _Up*>
1792  { typedef _Up type; };
1793 
1794 
1795  template<typename _Tp>
1796  struct remove_pointer
1797  : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type>
1798  { };
1799 
1800 
1801  template<typename _Tp, bool = __or_<__is_referenceable<_Tp>,
1802  is_void<_Tp>>::value>
1803  struct __add_pointer_helper
1804  { typedef _Tp type; };
1805 
1806  template<typename _Tp>
1807  struct __add_pointer_helper<_Tp, true>
1808  { typedef typename remove_reference<_Tp>::type* type; };
1809 
1810  template<typename _Tp>
1811  struct add_pointer
1812  : public __add_pointer_helper<_Tp>
1813  { };
1814 # 1842 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1815  template<std::size_t _Len>
1816  struct __aligned_storage_msa
1817  {
1818  union __type
1819  {
1820  unsigned char __data[_Len];
1821  struct __attribute__((__aligned__)) { } __align;
1822  };
1823  };
1824 # 1862 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
1825  template<std::size_t _Len, std::size_t _Align =
1826  __alignof__(typename __aligned_storage_msa<_Len>::__type)>
1827  struct aligned_storage
1828  {
1829  union type
1830  {
1831  unsigned char __data[_Len];
1832  struct __attribute__((__aligned__((_Align)))) { } __align;
1833  };
1834  };
1835 
1836 
1837 
1838 
1839  template<typename _Up,
1840  bool _IsArray = is_array<_Up>::value,
1841  bool _IsFunction = is_function<_Up>::value>
1842  struct __decay_selector;
1843 
1844 
1845  template<typename _Up>
1846  struct __decay_selector<_Up, false, false>
1847  { typedef typename remove_cv<_Up>::type __type; };
1848 
1849  template<typename _Up>
1850  struct __decay_selector<_Up, true, false>
1851  { typedef typename remove_extent<_Up>::type* __type; };
1852 
1853  template<typename _Up>
1854  struct __decay_selector<_Up, false, true>
1855  { typedef typename add_pointer<_Up>::type __type; };
1856 
1857 
1858  template<typename _Tp>
1859  class decay
1860  {
1861  typedef typename remove_reference<_Tp>::type __remove_type;
1862 
1863  public:
1864  typedef typename __decay_selector<__remove_type>::__type type;
1865  };
1866 
1867  template<typename _Tp>
1868  class reference_wrapper;
1869 
1870 
1871  template<typename _Tp>
1872  struct __strip_reference_wrapper
1873  {
1874  typedef _Tp __type;
1875  };
1876 
1877  template<typename _Tp>
1878  struct __strip_reference_wrapper<reference_wrapper<_Tp> >
1879  {
1880  typedef _Tp& __type;
1881  };
1882 
1883  template<typename _Tp>
1884  struct __decay_and_strip
1885  {
1886  typedef typename __strip_reference_wrapper<
1887  typename decay<_Tp>::type>::__type __type;
1888  };
1889 
1890 
1891 
1892 
1893  template<bool, typename _Tp = void>
1894  struct enable_if
1895  { };
1896 
1897 
1898  template<typename _Tp>
1899  struct enable_if<true, _Tp>
1900  { typedef _Tp type; };
1901 
1902  template<typename... _Cond>
1903  using _Require = typename enable_if<__and_<_Cond...>::value>::type;
1904 
1905 
1906 
1907  template<bool _Cond, typename _Iftrue, typename _Iffalse>
1908  struct conditional
1909  { typedef _Iftrue type; };
1910 
1911 
1912  template<typename _Iftrue, typename _Iffalse>
1913  struct conditional<false, _Iftrue, _Iffalse>
1914  { typedef _Iffalse type; };
1915 
1916 
1917  template<typename... _Tp>
1918  struct common_type;
1919 
1920 
1921 
1922  struct __do_common_type_impl
1923  {
1924  template<typename _Tp, typename _Up>
1925  static __success_type<typename decay<decltype
1926  (true ? std::declval<_Tp>()
1927  : std::declval<_Up>())>::type> _S_test(int);
1928 
1929  template<typename, typename>
1930  static __failure_type _S_test(...);
1931  };
1932 
1933  template<typename _Tp, typename _Up>
1934  struct __common_type_impl
1935  : private __do_common_type_impl
1936  {
1937  typedef decltype(_S_test<_Tp, _Up>(0)) type;
1938  };
1939 
1940  struct __do_member_type_wrapper
1941  {
1942  template<typename _Tp>
1943  static __success_type<typename _Tp::type> _S_test(int);
1944 
1945  template<typename>
1946  static __failure_type _S_test(...);
1947  };
1948 
1949  template<typename _Tp>
1950  struct __member_type_wrapper
1951  : private __do_member_type_wrapper
1952  {
1953  typedef decltype(_S_test<_Tp>(0)) type;
1954  };
1955 
1956  template<typename _CTp, typename... _Args>
1957  struct __expanded_common_type_wrapper
1958  {
1959  typedef common_type<typename _CTp::type, _Args...> type;
1960  };
1961 
1962  template<typename... _Args>
1963  struct __expanded_common_type_wrapper<__failure_type, _Args...>
1964  { typedef __failure_type type; };
1965 
1966  template<typename _Tp>
1967  struct common_type<_Tp>
1968  { typedef typename decay<_Tp>::type type; };
1969 
1970  template<typename _Tp, typename _Up>
1971  struct common_type<_Tp, _Up>
1972  : public __common_type_impl<_Tp, _Up>::type
1973  { };
1974 
1975  template<typename _Tp, typename _Up, typename... _Vp>
1976  struct common_type<_Tp, _Up, _Vp...>
1977  : public __expanded_common_type_wrapper<typename __member_type_wrapper<
1978  common_type<_Tp, _Up>>::type, _Vp...>::type
1979  { };
1980 
1981 
1982  template<typename _Tp>
1983  struct underlying_type
1984  {
1985  typedef __underlying_type(_Tp) type;
1986  };
1987 
1988  template<typename _Tp>
1989  struct __declval_protector
1990  {
1991  static const bool __stop = false;
1992  static typename add_rvalue_reference<_Tp>::type __delegate();
1993  };
1994 
1995  template<typename _Tp>
1996  inline typename add_rvalue_reference<_Tp>::type
1997  declval() noexcept
1998  {
1999  static_assert(__declval_protector<_Tp>::__stop,
2000  "declval() must not be used!");
2001  return __declval_protector<_Tp>::__delegate();
2002  }
2003 
2004 
2005  template<typename _Signature>
2006  class result_of;
2007 
2008 
2009 
2010 
2011  struct __result_of_memfun_ref_impl
2012  {
2013  template<typename _Fp, typename _Tp1, typename... _Args>
2014  static __success_type<decltype(
2015  (std::declval<_Tp1>().*std::declval<_Fp>())(std::declval<_Args>()...)
2016  )> _S_test(int);
2017 
2018  template<typename...>
2019  static __failure_type _S_test(...);
2020  };
2021 
2022  template<typename _MemPtr, typename _Arg, typename... _Args>
2023  struct __result_of_memfun_ref
2024  : private __result_of_memfun_ref_impl
2025  {
2026  typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
2027  };
2028 
2029 
2030  struct __result_of_memfun_deref_impl
2031  {
2032  template<typename _Fp, typename _Tp1, typename... _Args>
2033  static __success_type<decltype(
2034  ((*std::declval<_Tp1>()).*std::declval<_Fp>())(std::declval<_Args>()...)
2035  )> _S_test(int);
2036 
2037  template<typename...>
2038  static __failure_type _S_test(...);
2039  };
2040 
2041  template<typename _MemPtr, typename _Arg, typename... _Args>
2042  struct __result_of_memfun_deref
2043  : private __result_of_memfun_deref_impl
2044  {
2045  typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
2046  };
2047 
2048 
2049  struct __result_of_memobj_ref_impl
2050  {
2051  template<typename _Fp, typename _Tp1>
2052  static __success_type<decltype(
2053  std::declval<_Tp1>().*std::declval<_Fp>()
2054  )> _S_test(int);
2055 
2056  template<typename, typename>
2057  static __failure_type _S_test(...);
2058  };
2059 
2060  template<typename _MemPtr, typename _Arg>
2061  struct __result_of_memobj_ref
2062  : private __result_of_memobj_ref_impl
2063  {
2064  typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
2065  };
2066 
2067 
2068  struct __result_of_memobj_deref_impl
2069  {
2070  template<typename _Fp, typename _Tp1>
2071  static __success_type<decltype(
2072  (*std::declval<_Tp1>()).*std::declval<_Fp>()
2073  )> _S_test(int);
2074 
2075  template<typename, typename>
2076  static __failure_type _S_test(...);
2077  };
2078 
2079  template<typename _MemPtr, typename _Arg>
2080  struct __result_of_memobj_deref
2081  : private __result_of_memobj_deref_impl
2082  {
2083  typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
2084  };
2085 
2086  template<typename _MemPtr, typename _Arg>
2087  struct __result_of_memobj;
2088 
2089  template<typename _Res, typename _Class, typename _Arg>
2090  struct __result_of_memobj<_Res _Class::*, _Arg>
2091  {
2092  typedef typename remove_cv<typename remove_reference<
2093  _Arg>::type>::type _Argval;
2094  typedef _Res _Class::* _MemPtr;
2095  typedef typename conditional<__or_<is_same<_Argval, _Class>,
2096  is_base_of<_Class, _Argval>>::value,
2097  __result_of_memobj_ref<_MemPtr, _Arg>,
2098  __result_of_memobj_deref<_MemPtr, _Arg>
2099  >::type::type type;
2100  };
2101 
2102  template<typename _MemPtr, typename _Arg, typename... _Args>
2103  struct __result_of_memfun;
2104 
2105  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
2106  struct __result_of_memfun<_Res _Class::*, _Arg, _Args...>
2107  {
2108  typedef typename remove_cv<typename remove_reference<
2109  _Arg>::type>::type _Argval;
2110  typedef _Res _Class::* _MemPtr;
2111  typedef typename conditional<__or_<is_same<_Argval, _Class>,
2112  is_base_of<_Class, _Argval>>::value,
2113  __result_of_memfun_ref<_MemPtr, _Arg, _Args...>,
2114  __result_of_memfun_deref<_MemPtr, _Arg, _Args...>
2115  >::type::type type;
2116  };
2117 
2118  template<bool, bool, typename _Functor, typename... _ArgTypes>
2119  struct __result_of_impl
2120  {
2121  typedef __failure_type type;
2122  };
2123 
2124  template<typename _MemPtr, typename _Arg>
2125  struct __result_of_impl<true, false, _MemPtr, _Arg>
2126  : public __result_of_memobj<typename decay<_MemPtr>::type, _Arg>
2127  { };
2128 
2129  template<typename _MemPtr, typename _Arg, typename... _Args>
2130  struct __result_of_impl<false, true, _MemPtr, _Arg, _Args...>
2131  : public __result_of_memfun<typename decay<_MemPtr>::type, _Arg, _Args...>
2132  { };
2133 
2134 
2135  struct __result_of_other_impl
2136  {
2137  template<typename _Fn, typename... _Args>
2138  static __success_type<decltype(
2139  std::declval<_Fn>()(std::declval<_Args>()...)
2140  )> _S_test(int);
2141 
2142  template<typename...>
2143  static __failure_type _S_test(...);
2144  };
2145 
2146  template<typename _Functor, typename... _ArgTypes>
2147  struct __result_of_impl<false, false, _Functor, _ArgTypes...>
2148  : private __result_of_other_impl
2149  {
2150  typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
2151  };
2152 
2153  template<typename _Functor, typename... _ArgTypes>
2154  struct result_of<_Functor(_ArgTypes...)>
2155  : public __result_of_impl<
2156  is_member_object_pointer<
2157  typename remove_reference<_Functor>::type
2158  >::value,
2159  is_member_function_pointer<
2160  typename remove_reference<_Functor>::type
2161  >::value,
2162  _Functor, _ArgTypes...
2163  >::type
2164  { };
2165 # 2265 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/type_traits" 3
2166 }
2167 # 25 "./eval.hpp" 2
2168 
2169 # 1 "./list.hpp" 1
2170 # 24 "./list.hpp"
2171 # 1 "./integral.hpp" 1
2172 # 25 "./integral.hpp"
2173 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 1 3
2174 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 3
2175 
2176 
2177 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 1 3
2178 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 3
2179 
2180 
2181 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 1 3
2182 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 3
2183 
2184 
2185 
2186 namespace std __attribute__ ((__visibility__ ("default")))
2187 {
2188 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/memoryfwd.h" 3
2189  template<typename>
2190  class allocator;
2191 
2192  template<>
2193  class allocator<void>;
2194 
2195 
2196  template<typename, typename>
2197  struct uses_allocator;
2198 
2199 
2200 
2201 
2202 }
2203 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 2 3
2204 
2205 namespace std __attribute__ ((__visibility__ ("default")))
2206 {
2207 # 52 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stringfwd.h" 3
2208  template<class _CharT>
2209  struct char_traits;
2210 
2211  template<typename _CharT, typename _Traits = char_traits<_CharT>,
2212  typename _Alloc = allocator<_CharT> >
2213  class basic_string;
2214 
2215  template<> struct char_traits<char>;
2216 
2217 
2218  typedef basic_string<char> string;
2219 
2220 
2221  template<> struct char_traits<wchar_t>;
2222 
2223 
2224  typedef basic_string<wchar_t> wstring;
2225 
2226 
2227 
2228 
2229 
2230  template<> struct char_traits<char16_t>;
2231  template<> struct char_traits<char32_t>;
2232 
2233 
2234  typedef basic_string<char16_t> u16string;
2235 
2236 
2237  typedef basic_string<char32_t> u32string;
2238 
2239 
2240 
2241 
2242 
2243 }
2244 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
2245 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 1 3
2246 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
2247 
2248 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 1 3
2249 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
2250 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 1 3
2251 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 3
2252 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_defines.h" 1 3
2253 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functexcept.h" 2 3
2254 
2255 namespace std __attribute__ ((__visibility__ ("default")))
2256 {
2257 
2258 
2259 
2260  void
2261  __throw_bad_exception(void) __attribute__((__noreturn__));
2262 
2263 
2264  void
2265  __throw_bad_alloc(void) __attribute__((__noreturn__));
2266 
2267 
2268  void
2269  __throw_bad_cast(void) __attribute__((__noreturn__));
2270 
2271  void
2272  __throw_bad_typeid(void) __attribute__((__noreturn__));
2273 
2274 
2275  void
2276  __throw_logic_error(const char*) __attribute__((__noreturn__));
2277 
2278  void
2279  __throw_domain_error(const char*) __attribute__((__noreturn__));
2280 
2281  void
2282  __throw_invalid_argument(const char*) __attribute__((__noreturn__));
2283 
2284  void
2285  __throw_length_error(const char*) __attribute__((__noreturn__));
2286 
2287  void
2288  __throw_out_of_range(const char*) __attribute__((__noreturn__));
2289 
2290  void
2291  __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__))
2292  __attribute__((__format__(__printf__, 1, 2)));
2293 
2294  void
2295  __throw_runtime_error(const char*) __attribute__((__noreturn__));
2296 
2297  void
2298  __throw_range_error(const char*) __attribute__((__noreturn__));
2299 
2300  void
2301  __throw_overflow_error(const char*) __attribute__((__noreturn__));
2302 
2303  void
2304  __throw_underflow_error(const char*) __attribute__((__noreturn__));
2305 
2306 
2307  void
2308  __throw_ios_failure(const char*) __attribute__((__noreturn__));
2309 
2310  void
2311  __throw_system_error(int) __attribute__((__noreturn__));
2312 
2313  void
2314  __throw_future_error(int) __attribute__((__noreturn__));
2315 
2316 
2317  void
2318  __throw_bad_function_call() __attribute__((__noreturn__));
2319 
2320 
2321 }
2322 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2323 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 1 3
2324 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 3
2325 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cpp_type_traits.h" 3
2326 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2327 {
2328 
2329 
2330  template<typename _Iterator, typename _Container>
2331  class __normal_iterator;
2332 
2333 
2334 }
2335 
2336 namespace std __attribute__ ((__visibility__ ("default")))
2337 {
2338 
2339 
2340  struct __true_type { };
2341  struct __false_type { };
2342 
2343  template<bool>
2344  struct __truth_type
2345  { typedef __false_type __type; };
2346 
2347  template<>
2348  struct __truth_type<true>
2349  { typedef __true_type __type; };
2350 
2351 
2352 
2353  template<class _Sp, class _Tp>
2354  struct __traitor
2355  {
2356  enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
2357  typedef typename __truth_type<__value>::__type __type;
2358  };
2359 
2360 
2361  template<typename, typename>
2362  struct __are_same
2363  {
2364  enum { __value = 0 };
2365  typedef __false_type __type;
2366  };
2367 
2368  template<typename _Tp>
2369  struct __are_same<_Tp, _Tp>
2370  {
2371  enum { __value = 1 };
2372  typedef __true_type __type;
2373  };
2374 
2375 
2376  template<typename _Tp>
2377  struct __is_void
2378  {
2379  enum { __value = 0 };
2380  typedef __false_type __type;
2381  };
2382 
2383  template<>
2384  struct __is_void<void>
2385  {
2386  enum { __value = 1 };
2387  typedef __true_type __type;
2388  };
2389 
2390 
2391 
2392 
2393  template<typename _Tp>
2394  struct __is_integer
2395  {
2396  enum { __value = 0 };
2397  typedef __false_type __type;
2398  };
2399 
2400 
2401 
2402 
2403  template<>
2404  struct __is_integer<bool>
2405  {
2406  enum { __value = 1 };
2407  typedef __true_type __type;
2408  };
2409 
2410  template<>
2411  struct __is_integer<char>
2412  {
2413  enum { __value = 1 };
2414  typedef __true_type __type;
2415  };
2416 
2417  template<>
2418  struct __is_integer<signed char>
2419  {
2420  enum { __value = 1 };
2421  typedef __true_type __type;
2422  };
2423 
2424  template<>
2425  struct __is_integer<unsigned char>
2426  {
2427  enum { __value = 1 };
2428  typedef __true_type __type;
2429  };
2430 
2431 
2432  template<>
2433  struct __is_integer<wchar_t>
2434  {
2435  enum { __value = 1 };
2436  typedef __true_type __type;
2437  };
2438 
2439 
2440 
2441  template<>
2442  struct __is_integer<char16_t>
2443  {
2444  enum { __value = 1 };
2445  typedef __true_type __type;
2446  };
2447 
2448  template<>
2449  struct __is_integer<char32_t>
2450  {
2451  enum { __value = 1 };
2452  typedef __true_type __type;
2453  };
2454 
2455 
2456  template<>
2457  struct __is_integer<short>
2458  {
2459  enum { __value = 1 };
2460  typedef __true_type __type;
2461  };
2462 
2463  template<>
2464  struct __is_integer<unsigned short>
2465  {
2466  enum { __value = 1 };
2467  typedef __true_type __type;
2468  };
2469 
2470  template<>
2471  struct __is_integer<int>
2472  {
2473  enum { __value = 1 };
2474  typedef __true_type __type;
2475  };
2476 
2477  template<>
2478  struct __is_integer<unsigned int>
2479  {
2480  enum { __value = 1 };
2481  typedef __true_type __type;
2482  };
2483 
2484  template<>
2485  struct __is_integer<long>
2486  {
2487  enum { __value = 1 };
2488  typedef __true_type __type;
2489  };
2490 
2491  template<>
2492  struct __is_integer<unsigned long>
2493  {
2494  enum { __value = 1 };
2495  typedef __true_type __type;
2496  };
2497 
2498  template<>
2499  struct __is_integer<long long>
2500  {
2501  enum { __value = 1 };
2502  typedef __true_type __type;
2503  };
2504 
2505  template<>
2506  struct __is_integer<unsigned long long>
2507  {
2508  enum { __value = 1 };
2509  typedef __true_type __type;
2510  };
2511 
2512 
2513 
2514 
2515  template<typename _Tp>
2516  struct __is_floating
2517  {
2518  enum { __value = 0 };
2519  typedef __false_type __type;
2520  };
2521 
2522 
2523  template<>
2524  struct __is_floating<float>
2525  {
2526  enum { __value = 1 };
2527  typedef __true_type __type;
2528  };
2529 
2530  template<>
2531  struct __is_floating<double>
2532  {
2533  enum { __value = 1 };
2534  typedef __true_type __type;
2535  };
2536 
2537  template<>
2538  struct __is_floating<long double>
2539  {
2540  enum { __value = 1 };
2541  typedef __true_type __type;
2542  };
2543 
2544 
2545 
2546 
2547  template<typename _Tp>
2548  struct __is_pointer
2549  {
2550  enum { __value = 0 };
2551  typedef __false_type __type;
2552  };
2553 
2554  template<typename _Tp>
2555  struct __is_pointer<_Tp*>
2556  {
2557  enum { __value = 1 };
2558  typedef __true_type __type;
2559  };
2560 
2561 
2562 
2563 
2564  template<typename _Tp>
2565  struct __is_normal_iterator
2566  {
2567  enum { __value = 0 };
2568  typedef __false_type __type;
2569  };
2570 
2571  template<typename _Iterator, typename _Container>
2572  struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
2573  _Container> >
2574  {
2575  enum { __value = 1 };
2576  typedef __true_type __type;
2577  };
2578 
2579 
2580 
2581 
2582  template<typename _Tp>
2583  struct __is_arithmetic
2584  : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
2585  { };
2586 
2587 
2588 
2589 
2590  template<typename _Tp>
2591  struct __is_scalar
2592  : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
2593  { };
2594 
2595 
2596 
2597 
2598  template<typename _Tp>
2599  struct __is_char
2600  {
2601  enum { __value = 0 };
2602  typedef __false_type __type;
2603  };
2604 
2605  template<>
2606  struct __is_char<char>
2607  {
2608  enum { __value = 1 };
2609  typedef __true_type __type;
2610  };
2611 
2612 
2613  template<>
2614  struct __is_char<wchar_t>
2615  {
2616  enum { __value = 1 };
2617  typedef __true_type __type;
2618  };
2619 
2620 
2621  template<typename _Tp>
2622  struct __is_byte
2623  {
2624  enum { __value = 0 };
2625  typedef __false_type __type;
2626  };
2627 
2628  template<>
2629  struct __is_byte<char>
2630  {
2631  enum { __value = 1 };
2632  typedef __true_type __type;
2633  };
2634 
2635  template<>
2636  struct __is_byte<signed char>
2637  {
2638  enum { __value = 1 };
2639  typedef __true_type __type;
2640  };
2641 
2642  template<>
2643  struct __is_byte<unsigned char>
2644  {
2645  enum { __value = 1 };
2646  typedef __true_type __type;
2647  };
2648 
2649 
2650 
2651 
2652  template<typename _Tp>
2653  struct __is_move_iterator
2654  {
2655  enum { __value = 0 };
2656  typedef __false_type __type;
2657  };
2658 
2659 
2660  template<typename _Iterator>
2661  class move_iterator;
2662 
2663  template<typename _Iterator>
2664  struct __is_move_iterator< move_iterator<_Iterator> >
2665  {
2666  enum { __value = 1 };
2667  typedef __true_type __type;
2668  };
2669 
2670 
2671 
2672 }
2673 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2674 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/type_traits.h" 1 3
2675 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/type_traits.h" 3
2676 
2677 
2678 
2679 
2680 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2681 {
2682 
2683 
2684 
2685  template<bool, typename>
2686  struct __enable_if
2687  { };
2688 
2689  template<typename _Tp>
2690  struct __enable_if<true, _Tp>
2691  { typedef _Tp __type; };
2692 
2693 
2694 
2695  template<bool _Cond, typename _Iftrue, typename _Iffalse>
2696  struct __conditional_type
2697  { typedef _Iftrue __type; };
2698 
2699  template<typename _Iftrue, typename _Iffalse>
2700  struct __conditional_type<false, _Iftrue, _Iffalse>
2701  { typedef _Iffalse __type; };
2702 
2703 
2704 
2705  template<typename _Tp>
2706  struct __add_unsigned
2707  {
2708  private:
2709  typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
2710 
2711  public:
2712  typedef typename __if_type::__type __type;
2713  };
2714 
2715  template<>
2716  struct __add_unsigned<char>
2717  { typedef unsigned char __type; };
2718 
2719  template<>
2720  struct __add_unsigned<signed char>
2721  { typedef unsigned char __type; };
2722 
2723  template<>
2724  struct __add_unsigned<short>
2725  { typedef unsigned short __type; };
2726 
2727  template<>
2728  struct __add_unsigned<int>
2729  { typedef unsigned int __type; };
2730 
2731  template<>
2732  struct __add_unsigned<long>
2733  { typedef unsigned long __type; };
2734 
2735  template<>
2736  struct __add_unsigned<long long>
2737  { typedef unsigned long long __type; };
2738 
2739 
2740  template<>
2741  struct __add_unsigned<bool>;
2742 
2743  template<>
2744  struct __add_unsigned<wchar_t>;
2745 
2746 
2747 
2748  template<typename _Tp>
2749  struct __remove_unsigned
2750  {
2751  private:
2752  typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
2753 
2754  public:
2755  typedef typename __if_type::__type __type;
2756  };
2757 
2758  template<>
2759  struct __remove_unsigned<char>
2760  { typedef signed char __type; };
2761 
2762  template<>
2763  struct __remove_unsigned<unsigned char>
2764  { typedef signed char __type; };
2765 
2766  template<>
2767  struct __remove_unsigned<unsigned short>
2768  { typedef short __type; };
2769 
2770  template<>
2771  struct __remove_unsigned<unsigned int>
2772  { typedef int __type; };
2773 
2774  template<>
2775  struct __remove_unsigned<unsigned long>
2776  { typedef long __type; };
2777 
2778  template<>
2779  struct __remove_unsigned<unsigned long long>
2780  { typedef long long __type; };
2781 
2782 
2783  template<>
2784  struct __remove_unsigned<bool>;
2785 
2786  template<>
2787  struct __remove_unsigned<wchar_t>;
2788 
2789 
2790 
2791  template<typename _Type>
2792  inline bool
2793  __is_null_pointer(_Type* __ptr)
2794  { return __ptr == 0; }
2795 
2796  template<typename _Type>
2797  inline bool
2798  __is_null_pointer(_Type)
2799  { return false; }
2800 
2801 
2802  inline bool
2803  __is_null_pointer(std::nullptr_t)
2804  { return true; }
2805 
2806 
2807 
2808  template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
2809  struct __promote
2810  { typedef double __type; };
2811 
2812 
2813 
2814 
2815  template<typename _Tp>
2816  struct __promote<_Tp, false>
2817  { };
2818 
2819  template<>
2820  struct __promote<long double>
2821  { typedef long double __type; };
2822 
2823  template<>
2824  struct __promote<double>
2825  { typedef double __type; };
2826 
2827  template<>
2828  struct __promote<float>
2829  { typedef float __type; };
2830 
2831  template<typename _Tp, typename _Up,
2832  typename _Tp2 = typename __promote<_Tp>::__type,
2833  typename _Up2 = typename __promote<_Up>::__type>
2834  struct __promote_2
2835  {
2836  typedef __typeof__(_Tp2() + _Up2()) __type;
2837  };
2838 
2839  template<typename _Tp, typename _Up, typename _Vp,
2840  typename _Tp2 = typename __promote<_Tp>::__type,
2841  typename _Up2 = typename __promote<_Up>::__type,
2842  typename _Vp2 = typename __promote<_Vp>::__type>
2843  struct __promote_3
2844  {
2845  typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
2846  };
2847 
2848  template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
2849  typename _Tp2 = typename __promote<_Tp>::__type,
2850  typename _Up2 = typename __promote<_Up>::__type,
2851  typename _Vp2 = typename __promote<_Vp>::__type,
2852  typename _Wp2 = typename __promote<_Wp>::__type>
2853  struct __promote_4
2854  {
2855  typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
2856  };
2857 
2858 
2859 }
2860 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2861 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 1 3
2862 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2863 
2864 
2865 
2866 
2867 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
2868 {
2869 # 54 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2870  template<typename _Value>
2871  struct __numeric_traits_integer
2872  {
2873 
2874  static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0);
2875  static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0);
2876 
2877 
2878 
2879  static const bool __is_signed = ((_Value)(-1) < 0);
2880  static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0));
2881  };
2882 
2883  template<typename _Value>
2884  const _Value __numeric_traits_integer<_Value>::__min;
2885 
2886  template<typename _Value>
2887  const _Value __numeric_traits_integer<_Value>::__max;
2888 
2889  template<typename _Value>
2890  const bool __numeric_traits_integer<_Value>::__is_signed;
2891 
2892  template<typename _Value>
2893  const int __numeric_traits_integer<_Value>::__digits;
2894 # 99 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/numeric_traits.h" 3
2895  template<typename _Value>
2896  struct __numeric_traits_floating
2897  {
2898 
2899  static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136);
2900 
2901 
2902  static const bool __is_signed = true;
2903  static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18);
2904  static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932);
2905  };
2906 
2907  template<typename _Value>
2908  const int __numeric_traits_floating<_Value>::__max_digits10;
2909 
2910  template<typename _Value>
2911  const bool __numeric_traits_floating<_Value>::__is_signed;
2912 
2913  template<typename _Value>
2914  const int __numeric_traits_floating<_Value>::__digits10;
2915 
2916  template<typename _Value>
2917  const int __numeric_traits_floating<_Value>::__max_exponent10;
2918 
2919  template<typename _Value>
2920  struct __numeric_traits
2921  : public __conditional_type<std::__is_integer<_Value>::__value,
2922  __numeric_traits_integer<_Value>,
2923  __numeric_traits_floating<_Value> >::__type
2924  { };
2925 
2926 
2927 }
2928 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
2929 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 1 3
2930 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
2931 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 1 3
2932 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2933 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/concept_check.h" 1 3
2934 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/concept_check.h" 3
2935 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 2 3
2936 
2937 namespace std __attribute__ ((__visibility__ ("default")))
2938 {
2939 
2940 
2941 
2942 
2943 
2944 
2945 
2946  template<typename _Tp>
2947  inline _Tp*
2948  __addressof(_Tp& __r) noexcept
2949  {
2950  return reinterpret_cast<_Tp*>
2951  (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
2952  }
2953 
2954 
2955 }
2956 
2957 
2958 
2959 
2960 namespace std __attribute__ ((__visibility__ ("default")))
2961 {
2962 # 74 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2963  template<typename _Tp>
2964  constexpr _Tp&&
2965  forward(typename std::remove_reference<_Tp>::type& __t) noexcept
2966  { return static_cast<_Tp&&>(__t); }
2967 
2968 
2969 
2970 
2971 
2972 
2973 
2974  template<typename _Tp>
2975  constexpr _Tp&&
2976  forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
2977  {
2978  static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument"
2979  " substituting _Tp is an lvalue reference type");
2980  return static_cast<_Tp&&>(__t);
2981  }
2982 
2983 
2984 
2985 
2986 
2987 
2988  template<typename _Tp>
2989  constexpr typename std::remove_reference<_Tp>::type&&
2990  move(_Tp&& __t) noexcept
2991  { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
2992 
2993 
2994  template<typename _Tp>
2995  struct __move_if_noexcept_cond
2996  : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
2997  is_copy_constructible<_Tp>>::type { };
2998 # 118 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
2999  template<typename _Tp>
3000  constexpr typename
3001  conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type
3002  move_if_noexcept(_Tp& __x) noexcept
3003  { return std::move(__x); }
3004 # 133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3005  template<typename _Tp>
3006  inline _Tp*
3007  addressof(_Tp& __r) noexcept
3008  { return std::__addressof(__r); }
3009 
3010 
3011 
3012 }
3013 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3014 namespace std __attribute__ ((__visibility__ ("default")))
3015 {
3016 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/move.h" 3
3017  template<typename _Tp>
3018  inline void
3019  swap(_Tp& __a, _Tp& __b)
3020 
3021  noexcept(__and_<is_nothrow_move_constructible<_Tp>,
3022  is_nothrow_move_assignable<_Tp>>::value)
3023 
3024  {
3025 
3026 
3027 
3028  _Tp __tmp = std::move(__a);
3029  __a = std::move(__b);
3030  __b = std::move(__tmp);
3031  }
3032 
3033 
3034 
3035 
3036  template<typename _Tp, size_t _Nm>
3037  inline void
3038  swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
3039 
3040  noexcept(noexcept(swap(*__a, *__b)))
3041 
3042  {
3043  for (size_t __n = 0; __n < _Nm; ++__n)
3044  swap(__a[__n], __b[__n]);
3045  }
3046 
3047 
3048 
3049 }
3050 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 2 3
3051 
3052 
3053 
3054 
3055 
3056 namespace std __attribute__ ((__visibility__ ("default")))
3057 {
3058 # 76 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3059  struct piecewise_construct_t { };
3060 
3061 
3062  constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
3063 
3064 
3065  template<typename...>
3066  class tuple;
3067 
3068  template<std::size_t...>
3069  struct _Index_tuple;
3070 # 95 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3071  template<class _T1, class _T2>
3072  struct pair
3073  {
3074  typedef _T1 first_type;
3075  typedef _T2 second_type;
3076 
3077  _T1 first;
3078  _T2 second;
3079 
3080 
3081 
3082 
3083 
3084  constexpr pair()
3085  : first(), second() { }
3086 
3087 
3088  constexpr pair(const _T1& __a, const _T2& __b)
3089  : first(__a), second(__b) { }
3090 
3091 
3092 
3093 
3094 
3095 
3096 
3097  template<class _U1, class _U2, class = typename
3098  enable_if<__and_<is_convertible<const _U1&, _T1>,
3099  is_convertible<const _U2&, _T2>>::value>::type>
3100  constexpr pair(const pair<_U1, _U2>& __p)
3101  : first(__p.first), second(__p.second) { }
3102 
3103  constexpr pair(const pair&) = default;
3104  constexpr pair(pair&&) = default;
3105 
3106 
3107  template<class _U1, class = typename
3108  enable_if<is_convertible<_U1, _T1>::value>::type>
3109  constexpr pair(_U1&& __x, const _T2& __y)
3110  : first(std::forward<_U1>(__x)), second(__y) { }
3111 
3112  template<class _U2, class = typename
3113  enable_if<is_convertible<_U2, _T2>::value>::type>
3114  constexpr pair(const _T1& __x, _U2&& __y)
3115  : first(__x), second(std::forward<_U2>(__y)) { }
3116 
3117  template<class _U1, class _U2, class = typename
3118  enable_if<__and_<is_convertible<_U1, _T1>,
3119  is_convertible<_U2, _T2>>::value>::type>
3120  constexpr pair(_U1&& __x, _U2&& __y)
3121  : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
3122 
3123  template<class _U1, class _U2, class = typename
3124  enable_if<__and_<is_convertible<_U1, _T1>,
3125  is_convertible<_U2, _T2>>::value>::type>
3126  constexpr pair(pair<_U1, _U2>&& __p)
3127  : first(std::forward<_U1>(__p.first)),
3128  second(std::forward<_U2>(__p.second)) { }
3129 
3130  template<typename... _Args1, typename... _Args2>
3131  pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
3132 
3133  pair&
3134  operator=(const pair& __p)
3135  {
3136  first = __p.first;
3137  second = __p.second;
3138  return *this;
3139  }
3140 
3141  pair&
3142  operator=(pair&& __p)
3143  noexcept(__and_<is_nothrow_move_assignable<_T1>,
3144  is_nothrow_move_assignable<_T2>>::value)
3145  {
3146  first = std::forward<first_type>(__p.first);
3147  second = std::forward<second_type>(__p.second);
3148  return *this;
3149  }
3150 
3151  template<class _U1, class _U2>
3152  pair&
3153  operator=(const pair<_U1, _U2>& __p)
3154  {
3155  first = __p.first;
3156  second = __p.second;
3157  return *this;
3158  }
3159 
3160  template<class _U1, class _U2>
3161  pair&
3162  operator=(pair<_U1, _U2>&& __p)
3163  {
3164  first = std::forward<_U1>(__p.first);
3165  second = std::forward<_U2>(__p.second);
3166  return *this;
3167  }
3168 
3169  void
3170  swap(pair& __p)
3171  noexcept(noexcept(swap(first, __p.first))
3172  && noexcept(swap(second, __p.second)))
3173  {
3174  using std::swap;
3175  swap(first, __p.first);
3176  swap(second, __p.second);
3177  }
3178 
3179  private:
3180  template<typename... _Args1, std::size_t... _Indexes1,
3181  typename... _Args2, std::size_t... _Indexes2>
3182  pair(tuple<_Args1...>&, tuple<_Args2...>&,
3183  _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>);
3184 
3185  };
3186 
3187 
3188  template<class _T1, class _T2>
3189  inline constexpr bool
3190  operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3191  { return __x.first == __y.first && __x.second == __y.second; }
3192 
3193 
3194  template<class _T1, class _T2>
3195  inline constexpr bool
3196  operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3197  { return __x.first < __y.first
3198  || (!(__y.first < __x.first) && __x.second < __y.second); }
3199 
3200 
3201  template<class _T1, class _T2>
3202  inline constexpr bool
3203  operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3204  { return !(__x == __y); }
3205 
3206 
3207  template<class _T1, class _T2>
3208  inline constexpr bool
3209  operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3210  { return __y < __x; }
3211 
3212 
3213  template<class _T1, class _T2>
3214  inline constexpr bool
3215  operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3216  { return !(__y < __x); }
3217 
3218 
3219  template<class _T1, class _T2>
3220  inline constexpr bool
3221  operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
3222  { return !(__x < __y); }
3223 
3224 
3225 
3226 
3227 
3228  template<class _T1, class _T2>
3229  inline void
3230  swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
3231  noexcept(noexcept(__x.swap(__y)))
3232  { __x.swap(__y); }
3233 # 273 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3234  template<class _T1, class _T2>
3235  constexpr pair<typename __decay_and_strip<_T1>::__type,
3236  typename __decay_and_strip<_T2>::__type>
3237  make_pair(_T1&& __x, _T2&& __y)
3238  {
3239  typedef typename __decay_and_strip<_T1>::__type __ds_type1;
3240  typedef typename __decay_and_strip<_T2>::__type __ds_type2;
3241  typedef pair<__ds_type1, __ds_type2> __pair_type;
3242  return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
3243  }
3244 # 293 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_pair.h" 3
3245 }
3246 # 65 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3247 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 1 3
3248 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3249 
3250 
3251 
3252 
3253 
3254 
3255 
3256 namespace std __attribute__ ((__visibility__ ("default")))
3257 {
3258 # 89 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3259  struct input_iterator_tag { };
3260 
3261 
3262  struct output_iterator_tag { };
3263 
3264 
3265  struct forward_iterator_tag : public input_iterator_tag { };
3266 
3267 
3268 
3269  struct bidirectional_iterator_tag : public forward_iterator_tag { };
3270 
3271 
3272 
3273  struct random_access_iterator_tag : public bidirectional_iterator_tag { };
3274 # 116 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3275  template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
3276  typename _Pointer = _Tp*, typename _Reference = _Tp&>
3277  struct iterator
3278  {
3279 
3280  typedef _Category iterator_category;
3281 
3282  typedef _Tp value_type;
3283 
3284  typedef _Distance difference_type;
3285 
3286  typedef _Pointer pointer;
3287 
3288  typedef _Reference reference;
3289  };
3290 # 142 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3291 template<typename _Tp> class __has_iterator_category_helper { template<typename _Up> struct _Wrap_type { }; template<typename _Up> static true_type __test(_Wrap_type<typename _Up::iterator_category>*); template<typename _Up> static false_type __test(...); public: typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_iterator_category : public __has_iterator_category_helper <typename remove_cv<_Tp>::type>::type { };
3292 
3293  template<typename _Iterator,
3294  bool = __has_iterator_category<_Iterator>::value>
3295  struct __iterator_traits { };
3296 
3297  template<typename _Iterator>
3298  struct __iterator_traits<_Iterator, true>
3299  {
3300  typedef typename _Iterator::iterator_category iterator_category;
3301  typedef typename _Iterator::value_type value_type;
3302  typedef typename _Iterator::difference_type difference_type;
3303  typedef typename _Iterator::pointer pointer;
3304  typedef typename _Iterator::reference reference;
3305  };
3306 
3307  template<typename _Iterator>
3308  struct iterator_traits
3309  : public __iterator_traits<_Iterator> { };
3310 # 174 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_types.h" 3
3311  template<typename _Tp>
3312  struct iterator_traits<_Tp*>
3313  {
3314  typedef random_access_iterator_tag iterator_category;
3315  typedef _Tp value_type;
3316  typedef ptrdiff_t difference_type;
3317  typedef _Tp* pointer;
3318  typedef _Tp& reference;
3319  };
3320 
3321 
3322  template<typename _Tp>
3323  struct iterator_traits<const _Tp*>
3324  {
3325  typedef random_access_iterator_tag iterator_category;
3326  typedef _Tp value_type;
3327  typedef ptrdiff_t difference_type;
3328  typedef const _Tp* pointer;
3329  typedef const _Tp& reference;
3330  };
3331 
3332 
3333 
3334 
3335 
3336  template<typename _Iter>
3337  inline typename iterator_traits<_Iter>::iterator_category
3338  __iterator_category(const _Iter&)
3339  { return typename iterator_traits<_Iter>::iterator_category(); }
3340 
3341 
3342 
3343 
3344 
3345  template<typename _Iterator, bool _HasBase>
3346  struct _Iter_base
3347  {
3348  typedef _Iterator iterator_type;
3349  static iterator_type _S_base(_Iterator __it)
3350  { return __it; }
3351  };
3352 
3353  template<typename _Iterator>
3354  struct _Iter_base<_Iterator, true>
3355  {
3356  typedef typename _Iterator::iterator_type iterator_type;
3357  static iterator_type _S_base(_Iterator __it)
3358  { return __it.base(); }
3359  };
3360 
3361 
3362  template<typename _InIter>
3363  using _RequireInputIter = typename
3364  enable_if<is_convertible<typename
3365  iterator_traits<_InIter>::iterator_category,
3366  input_iterator_tag>::value>::type;
3367 
3368 
3369 
3370 }
3371 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3372 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 1 3
3373 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3374 
3375 
3376 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/debug/debug.h" 1 3
3377 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/debug/debug.h" 3
3378 namespace std
3379 {
3380  namespace __debug { }
3381 }
3382 
3383 
3384 
3385 
3386 namespace __gnu_debug
3387 {
3388  using namespace std::__debug;
3389 }
3390 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 2 3
3391 
3392 namespace std __attribute__ ((__visibility__ ("default")))
3393 {
3394 
3395 
3396  template<typename _InputIterator>
3397  inline typename iterator_traits<_InputIterator>::difference_type
3398  __distance(_InputIterator __first, _InputIterator __last,
3399  input_iterator_tag)
3400  {
3401 
3402 
3403 
3404  typename iterator_traits<_InputIterator>::difference_type __n = 0;
3405  while (__first != __last)
3406  {
3407  ++__first;
3408  ++__n;
3409  }
3410  return __n;
3411  }
3412 
3413  template<typename _RandomAccessIterator>
3414  inline typename iterator_traits<_RandomAccessIterator>::difference_type
3415  __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
3416  random_access_iterator_tag)
3417  {
3418 
3419 
3420 
3421  return __last - __first;
3422  }
3423 # 112 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3424  template<typename _InputIterator>
3425  inline typename iterator_traits<_InputIterator>::difference_type
3426  distance(_InputIterator __first, _InputIterator __last)
3427  {
3428 
3429  return std::__distance(__first, __last,
3430  std::__iterator_category(__first));
3431  }
3432 
3433  template<typename _InputIterator, typename _Distance>
3434  inline void
3435  __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
3436  {
3437 
3438 
3439  ;
3440  while (__n--)
3441  ++__i;
3442  }
3443 
3444  template<typename _BidirectionalIterator, typename _Distance>
3445  inline void
3446  __advance(_BidirectionalIterator& __i, _Distance __n,
3447  bidirectional_iterator_tag)
3448  {
3449 
3450 
3451 
3452  if (__n > 0)
3453  while (__n--)
3454  ++__i;
3455  else
3456  while (__n++)
3457  --__i;
3458  }
3459 
3460  template<typename _RandomAccessIterator, typename _Distance>
3461  inline void
3462  __advance(_RandomAccessIterator& __i, _Distance __n,
3463  random_access_iterator_tag)
3464  {
3465 
3466 
3467 
3468  __i += __n;
3469  }
3470 # 171 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator_base_funcs.h" 3
3471  template<typename _InputIterator, typename _Distance>
3472  inline void
3473  advance(_InputIterator& __i, _Distance __n)
3474  {
3475 
3476  typename iterator_traits<_InputIterator>::difference_type __d = __n;
3477  std::__advance(__i, __d, std::__iterator_category(__i));
3478  }
3479 
3480 
3481 
3482  template<typename _ForwardIterator>
3483  inline _ForwardIterator
3484  next(_ForwardIterator __x, typename
3485  iterator_traits<_ForwardIterator>::difference_type __n = 1)
3486  {
3487  std::advance(__x, __n);
3488  return __x;
3489  }
3490 
3491  template<typename _BidirectionalIterator>
3492  inline _BidirectionalIterator
3493  prev(_BidirectionalIterator __x, typename
3494  iterator_traits<_BidirectionalIterator>::difference_type __n = 1)
3495  {
3496  std::advance(__x, -__n);
3497  return __x;
3498  }
3499 
3500 
3501 
3502 
3503 }
3504 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
3505 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 1 3
3506 # 66 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3507 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ptr_traits.h" 1 3
3508 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ptr_traits.h" 3
3509 namespace std __attribute__ ((__visibility__ ("default")))
3510 {
3511 
3512 
3513 template<typename _Tp> class __has_element_type_helper { template<typename _Up> struct _Wrap_type { }; template<typename _Up> static true_type __test(_Wrap_type<typename _Up::element_type>*); template<typename _Up> static false_type __test(...); public: typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_element_type : public __has_element_type_helper <typename remove_cv<_Tp>::type>::type { };
3514 template<typename _Tp> class __has_difference_type_helper { template<typename _Up> struct _Wrap_type { }; template<typename _Up> static true_type __test(_Wrap_type<typename _Up::difference_type>*); template<typename _Up> static false_type __test(...); public: typedef decltype(__test<_Tp>(0)) type; }; template<typename _Tp> struct __has_difference_type : public __has_difference_type_helper <typename remove_cv<_Tp>::type>::type { };
3515 
3516  template<typename _Tp, bool = __has_element_type<_Tp>::value>
3517  struct __ptrtr_elt_type;
3518 
3519  template<typename _Tp>
3520  struct __ptrtr_elt_type<_Tp, true>
3521  {
3522  typedef typename _Tp::element_type __type;
3523  };
3524 
3525  template<template<typename, typename...> class _SomePtr, typename _Tp,
3526  typename... _Args>
3527  struct __ptrtr_elt_type<_SomePtr<_Tp, _Args...>, false>
3528  {
3529  typedef _Tp __type;
3530  };
3531 
3532  template<typename _Tp, bool = __has_difference_type<_Tp>::value>
3533  struct __ptrtr_diff_type
3534  {
3535  typedef typename _Tp::difference_type __type;
3536  };
3537 
3538  template<typename _Tp>
3539  struct __ptrtr_diff_type<_Tp, false>
3540  {
3541  typedef ptrdiff_t __type;
3542  };
3543 
3544  template<typename _Ptr, typename _Up>
3545  class __ptrtr_rebind_helper
3546  {
3547  template<typename _Ptr2, typename _Up2>
3548  static constexpr true_type
3549  _S_chk(typename _Ptr2::template rebind<_Up2>*);
3550 
3551  template<typename, typename>
3552  static constexpr false_type
3553  _S_chk(...);
3554 
3555  public:
3556  using __type = decltype(_S_chk<_Ptr, _Up>(nullptr));
3557  };
3558 
3559  template<typename _Tp, typename _Up,
3560  bool = __ptrtr_rebind_helper<_Tp, _Up>::__type::value>
3561  struct __ptrtr_rebind;
3562 
3563  template<typename _Tp, typename _Up>
3564  struct __ptrtr_rebind<_Tp, _Up, true>
3565  {
3566  typedef typename _Tp::template rebind<_Up> __type;
3567  };
3568 
3569  template<template<typename, typename...> class _SomePtr, typename _Up,
3570  typename _Tp, typename... _Args>
3571  struct __ptrtr_rebind<_SomePtr<_Tp, _Args...>, _Up, false>
3572  {
3573  typedef _SomePtr<_Up, _Args...> __type;
3574  };
3575 
3576  template<typename _Tp, typename = typename remove_cv<_Tp>::type>
3577  struct __ptrtr_not_void
3578  {
3579  typedef _Tp __type;
3580  };
3581 
3582  template<typename _Tp>
3583  struct __ptrtr_not_void<_Tp, void>
3584  {
3585  struct __type { };
3586  };
3587 
3588  template<typename _Ptr>
3589  class __ptrtr_pointer_to
3590  {
3591  typedef typename __ptrtr_elt_type<_Ptr>::__type __orig_type;
3592  typedef typename __ptrtr_not_void<__orig_type>::__type __element_type;
3593 
3594  public:
3595  static _Ptr pointer_to(__element_type& __e)
3596  { return _Ptr::pointer_to(__e); }
3597  };
3598 
3599 
3600 
3601 
3602 
3603  template<typename _Ptr>
3604  struct pointer_traits : __ptrtr_pointer_to<_Ptr>
3605  {
3606 
3607  typedef _Ptr pointer;
3608 
3609  typedef typename __ptrtr_elt_type<_Ptr>::__type element_type;
3610 
3611  typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type;
3612 
3613  template<typename _Up>
3614  using rebind = typename __ptrtr_rebind<_Ptr, _Up>::__type;
3615  };
3616 
3617 
3618 
3619 
3620 
3621  template<typename _Tp>
3622  struct pointer_traits<_Tp*>
3623  {
3624 
3625  typedef _Tp* pointer;
3626 
3627  typedef _Tp element_type;
3628 
3629  typedef ptrdiff_t difference_type;
3630 
3631  template<typename _Up>
3632  using rebind = _Up*;
3633 
3634 
3635 
3636 
3637 
3638 
3639  static pointer
3640  pointer_to(typename __ptrtr_not_void<element_type>::__type& __r) noexcept
3641  { return std::addressof(__r); }
3642  };
3643 
3644 
3645 }
3646 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 2 3
3647 
3648 namespace std __attribute__ ((__visibility__ ("default")))
3649 {
3650 # 96 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3651  template<typename _Iterator>
3652  class reverse_iterator
3653  : public iterator<typename iterator_traits<_Iterator>::iterator_category,
3654  typename iterator_traits<_Iterator>::value_type,
3655  typename iterator_traits<_Iterator>::difference_type,
3656  typename iterator_traits<_Iterator>::pointer,
3657  typename iterator_traits<_Iterator>::reference>
3658  {
3659  protected:
3660  _Iterator current;
3661 
3662  typedef iterator_traits<_Iterator> __traits_type;
3663 
3664  public:
3665  typedef _Iterator iterator_type;
3666  typedef typename __traits_type::difference_type difference_type;
3667  typedef typename __traits_type::pointer pointer;
3668  typedef typename __traits_type::reference reference;
3669 
3670 
3671 
3672 
3673 
3674 
3675 
3676  reverse_iterator() : current() { }
3677 
3678 
3679 
3680 
3681  explicit
3682  reverse_iterator(iterator_type __x) : current(__x) { }
3683 
3684 
3685 
3686 
3687  reverse_iterator(const reverse_iterator& __x)
3688  : current(__x.current) { }
3689 
3690 
3691 
3692 
3693 
3694  template<typename _Iter>
3695  reverse_iterator(const reverse_iterator<_Iter>& __x)
3696  : current(__x.base()) { }
3697 
3698 
3699 
3700 
3701  iterator_type
3702  base() const
3703  { return current; }
3704 # 160 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3705  reference
3706  operator*() const
3707  {
3708  _Iterator __tmp = current;
3709  return *--__tmp;
3710  }
3711 
3712 
3713 
3714 
3715 
3716 
3717  pointer
3718  operator->() const
3719  { return &(operator*()); }
3720 
3721 
3722 
3723 
3724 
3725 
3726  reverse_iterator&
3727  operator++()
3728  {
3729  --current;
3730  return *this;
3731  }
3732 
3733 
3734 
3735 
3736 
3737 
3738  reverse_iterator
3739  operator++(int)
3740  {
3741  reverse_iterator __tmp = *this;
3742  --current;
3743  return __tmp;
3744  }
3745 
3746 
3747 
3748 
3749 
3750 
3751  reverse_iterator&
3752  operator--()
3753  {
3754  ++current;
3755  return *this;
3756  }
3757 
3758 
3759 
3760 
3761 
3762 
3763  reverse_iterator
3764  operator--(int)
3765  {
3766  reverse_iterator __tmp = *this;
3767  ++current;
3768  return __tmp;
3769  }
3770 
3771 
3772 
3773 
3774 
3775 
3776  reverse_iterator
3777  operator+(difference_type __n) const
3778  { return reverse_iterator(current - __n); }
3779 
3780 
3781 
3782 
3783 
3784 
3785 
3786  reverse_iterator&
3787  operator+=(difference_type __n)
3788  {
3789  current -= __n;
3790  return *this;
3791  }
3792 
3793 
3794 
3795 
3796 
3797 
3798  reverse_iterator
3799  operator-(difference_type __n) const
3800  { return reverse_iterator(current + __n); }
3801 
3802 
3803 
3804 
3805 
3806 
3807 
3808  reverse_iterator&
3809  operator-=(difference_type __n)
3810  {
3811  current += __n;
3812  return *this;
3813  }
3814 
3815 
3816 
3817 
3818 
3819 
3820  reference
3821  operator[](difference_type __n) const
3822  { return *(*this + __n); }
3823  };
3824 # 290 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3825  template<typename _Iterator>
3826  inline bool
3827  operator==(const reverse_iterator<_Iterator>& __x,
3828  const reverse_iterator<_Iterator>& __y)
3829  { return __x.base() == __y.base(); }
3830 
3831  template<typename _Iterator>
3832  inline bool
3833  operator<(const reverse_iterator<_Iterator>& __x,
3834  const reverse_iterator<_Iterator>& __y)
3835  { return __y.base() < __x.base(); }
3836 
3837  template<typename _Iterator>
3838  inline bool
3839  operator!=(const reverse_iterator<_Iterator>& __x,
3840  const reverse_iterator<_Iterator>& __y)
3841  { return !(__x == __y); }
3842 
3843  template<typename _Iterator>
3844  inline bool
3845  operator>(const reverse_iterator<_Iterator>& __x,
3846  const reverse_iterator<_Iterator>& __y)
3847  { return __y < __x; }
3848 
3849  template<typename _Iterator>
3850  inline bool
3851  operator<=(const reverse_iterator<_Iterator>& __x,
3852  const reverse_iterator<_Iterator>& __y)
3853  { return !(__y < __x); }
3854 
3855  template<typename _Iterator>
3856  inline bool
3857  operator>=(const reverse_iterator<_Iterator>& __x,
3858  const reverse_iterator<_Iterator>& __y)
3859  { return !(__x < __y); }
3860 
3861  template<typename _Iterator>
3862  inline typename reverse_iterator<_Iterator>::difference_type
3863  operator-(const reverse_iterator<_Iterator>& __x,
3864  const reverse_iterator<_Iterator>& __y)
3865  { return __y.base() - __x.base(); }
3866 
3867  template<typename _Iterator>
3868  inline reverse_iterator<_Iterator>
3869  operator+(typename reverse_iterator<_Iterator>::difference_type __n,
3870  const reverse_iterator<_Iterator>& __x)
3871  { return reverse_iterator<_Iterator>(__x.base() - __n); }
3872 
3873 
3874 
3875  template<typename _IteratorL, typename _IteratorR>
3876  inline bool
3877  operator==(const reverse_iterator<_IteratorL>& __x,
3878  const reverse_iterator<_IteratorR>& __y)
3879  { return __x.base() == __y.base(); }
3880 
3881  template<typename _IteratorL, typename _IteratorR>
3882  inline bool
3883  operator<(const reverse_iterator<_IteratorL>& __x,
3884  const reverse_iterator<_IteratorR>& __y)
3885  { return __y.base() < __x.base(); }
3886 
3887  template<typename _IteratorL, typename _IteratorR>
3888  inline bool
3889  operator!=(const reverse_iterator<_IteratorL>& __x,
3890  const reverse_iterator<_IteratorR>& __y)
3891  { return !(__x == __y); }
3892 
3893  template<typename _IteratorL, typename _IteratorR>
3894  inline bool
3895  operator>(const reverse_iterator<_IteratorL>& __x,
3896  const reverse_iterator<_IteratorR>& __y)
3897  { return __y < __x; }
3898 
3899  template<typename _IteratorL, typename _IteratorR>
3900  inline bool
3901  operator<=(const reverse_iterator<_IteratorL>& __x,
3902  const reverse_iterator<_IteratorR>& __y)
3903  { return !(__y < __x); }
3904 
3905  template<typename _IteratorL, typename _IteratorR>
3906  inline bool
3907  operator>=(const reverse_iterator<_IteratorL>& __x,
3908  const reverse_iterator<_IteratorR>& __y)
3909  { return !(__x < __y); }
3910 
3911  template<typename _IteratorL, typename _IteratorR>
3912 
3913 
3914  inline auto
3915  operator-(const reverse_iterator<_IteratorL>& __x,
3916  const reverse_iterator<_IteratorR>& __y)
3917  -> decltype(__y.base() - __x.base())
3918 
3919 
3920 
3921 
3922 
3923  { return __y.base() - __x.base(); }
3924 # 402 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3925  template<typename _Container>
3926  class back_insert_iterator
3927  : public iterator<output_iterator_tag, void, void, void, void>
3928  {
3929  protected:
3930  _Container* container;
3931 
3932  public:
3933 
3934  typedef _Container container_type;
3935 
3936 
3937  explicit
3938  back_insert_iterator(_Container& __x) : container(&__x) { }
3939 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3940  back_insert_iterator&
3941  operator=(const typename _Container::value_type& __value)
3942  {
3943  container->push_back(__value);
3944  return *this;
3945  }
3946 
3947  back_insert_iterator&
3948  operator=(typename _Container::value_type&& __value)
3949  {
3950  container->push_back(std::move(__value));
3951  return *this;
3952  }
3953 
3954 
3955 
3956  back_insert_iterator&
3957  operator*()
3958  { return *this; }
3959 
3960 
3961  back_insert_iterator&
3962  operator++()
3963  { return *this; }
3964 
3965 
3966  back_insert_iterator
3967  operator++(int)
3968  { return *this; }
3969  };
3970 # 478 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3971  template<typename _Container>
3972  inline back_insert_iterator<_Container>
3973  back_inserter(_Container& __x)
3974  { return back_insert_iterator<_Container>(__x); }
3975 # 493 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3976  template<typename _Container>
3977  class front_insert_iterator
3978  : public iterator<output_iterator_tag, void, void, void, void>
3979  {
3980  protected:
3981  _Container* container;
3982 
3983  public:
3984 
3985  typedef _Container container_type;
3986 
3987 
3988  explicit front_insert_iterator(_Container& __x) : container(&__x) { }
3989 # 526 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
3990  front_insert_iterator&
3991  operator=(const typename _Container::value_type& __value)
3992  {
3993  container->push_front(__value);
3994  return *this;
3995  }
3996 
3997  front_insert_iterator&
3998  operator=(typename _Container::value_type&& __value)
3999  {
4000  container->push_front(std::move(__value));
4001  return *this;
4002  }
4003 
4004 
4005 
4006  front_insert_iterator&
4007  operator*()
4008  { return *this; }
4009 
4010 
4011  front_insert_iterator&
4012  operator++()
4013  { return *this; }
4014 
4015 
4016  front_insert_iterator
4017  operator++(int)
4018  { return *this; }
4019  };
4020 # 568 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4021  template<typename _Container>
4022  inline front_insert_iterator<_Container>
4023  front_inserter(_Container& __x)
4024  { return front_insert_iterator<_Container>(__x); }
4025 # 587 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4026  template<typename _Container>
4027  class insert_iterator
4028  : public iterator<output_iterator_tag, void, void, void, void>
4029  {
4030  protected:
4031  _Container* container;
4032  typename _Container::iterator iter;
4033 
4034  public:
4035 
4036  typedef _Container container_type;
4037 
4038 
4039 
4040 
4041 
4042  insert_iterator(_Container& __x, typename _Container::iterator __i)
4043  : container(&__x), iter(__i) {}
4044 # 638 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4045  insert_iterator&
4046  operator=(const typename _Container::value_type& __value)
4047  {
4048  iter = container->insert(iter, __value);
4049  ++iter;
4050  return *this;
4051  }
4052 
4053  insert_iterator&
4054  operator=(typename _Container::value_type&& __value)
4055  {
4056  iter = container->insert(iter, std::move(__value));
4057  ++iter;
4058  return *this;
4059  }
4060 
4061 
4062 
4063  insert_iterator&
4064  operator*()
4065  { return *this; }
4066 
4067 
4068  insert_iterator&
4069  operator++()
4070  { return *this; }
4071 
4072 
4073  insert_iterator&
4074  operator++(int)
4075  { return *this; }
4076  };
4077 # 682 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4078  template<typename _Container, typename _Iterator>
4079  inline insert_iterator<_Container>
4080  inserter(_Container& __x, _Iterator __i)
4081  {
4082  return insert_iterator<_Container>(__x,
4083  typename _Container::iterator(__i));
4084  }
4085 
4086 
4087 
4088 
4089 }
4090 
4091 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
4092 {
4093 # 706 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4094  using std::iterator_traits;
4095  using std::iterator;
4096  template<typename _Iterator, typename _Container>
4097  class __normal_iterator
4098  {
4099  protected:
4100  _Iterator _M_current;
4101 
4102  typedef iterator_traits<_Iterator> __traits_type;
4103 
4104  public:
4105  typedef _Iterator iterator_type;
4106  typedef typename __traits_type::iterator_category iterator_category;
4107  typedef typename __traits_type::value_type value_type;
4108  typedef typename __traits_type::difference_type difference_type;
4109  typedef typename __traits_type::reference reference;
4110  typedef typename __traits_type::pointer pointer;
4111 
4112  constexpr __normal_iterator() noexcept
4113  : _M_current(_Iterator()) { }
4114 
4115  explicit
4116  __normal_iterator(const _Iterator& __i) noexcept
4117  : _M_current(__i) { }
4118 
4119 
4120  template<typename _Iter>
4121  __normal_iterator(const __normal_iterator<_Iter,
4122  typename __enable_if<
4123  (std::__are_same<_Iter, typename _Container::pointer>::__value),
4124  _Container>::__type>& __i) noexcept
4125  : _M_current(__i.base()) { }
4126 
4127 
4128  reference
4129  operator*() const noexcept
4130  { return *_M_current; }
4131 
4132  pointer
4133  operator->() const noexcept
4134  { return _M_current; }
4135 
4136  __normal_iterator&
4137  operator++() noexcept
4138  {
4139  ++_M_current;
4140  return *this;
4141  }
4142 
4143  __normal_iterator
4144  operator++(int) noexcept
4145  { return __normal_iterator(_M_current++); }
4146 
4147 
4148  __normal_iterator&
4149  operator--() noexcept
4150  {
4151  --_M_current;
4152  return *this;
4153  }
4154 
4155  __normal_iterator
4156  operator--(int) noexcept
4157  { return __normal_iterator(_M_current--); }
4158 
4159 
4160  reference
4161  operator[](difference_type __n) const noexcept
4162  { return _M_current[__n]; }
4163 
4164  __normal_iterator&
4165  operator+=(difference_type __n) noexcept
4166  { _M_current += __n; return *this; }
4167 
4168  __normal_iterator
4169  operator+(difference_type __n) const noexcept
4170  { return __normal_iterator(_M_current + __n); }
4171 
4172  __normal_iterator&
4173  operator-=(difference_type __n) noexcept
4174  { _M_current -= __n; return *this; }
4175 
4176  __normal_iterator
4177  operator-(difference_type __n) const noexcept
4178  { return __normal_iterator(_M_current - __n); }
4179 
4180  const _Iterator&
4181  base() const noexcept
4182  { return _M_current; }
4183  };
4184 # 806 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4185  template<typename _IteratorL, typename _IteratorR, typename _Container>
4186  inline bool
4187  operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
4188  const __normal_iterator<_IteratorR, _Container>& __rhs)
4189  noexcept
4190  { return __lhs.base() == __rhs.base(); }
4191 
4192  template<typename _Iterator, typename _Container>
4193  inline bool
4194  operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
4195  const __normal_iterator<_Iterator, _Container>& __rhs)
4196  noexcept
4197  { return __lhs.base() == __rhs.base(); }
4198 
4199  template<typename _IteratorL, typename _IteratorR, typename _Container>
4200  inline bool
4201  operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
4202  const __normal_iterator<_IteratorR, _Container>& __rhs)
4203  noexcept
4204  { return __lhs.base() != __rhs.base(); }
4205 
4206  template<typename _Iterator, typename _Container>
4207  inline bool
4208  operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
4209  const __normal_iterator<_Iterator, _Container>& __rhs)
4210  noexcept
4211  { return __lhs.base() != __rhs.base(); }
4212 
4213 
4214  template<typename _IteratorL, typename _IteratorR, typename _Container>
4215  inline bool
4216  operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
4217  const __normal_iterator<_IteratorR, _Container>& __rhs)
4218  noexcept
4219  { return __lhs.base() < __rhs.base(); }
4220 
4221  template<typename _Iterator, typename _Container>
4222  inline bool
4223  operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
4224  const __normal_iterator<_Iterator, _Container>& __rhs)
4225  noexcept
4226  { return __lhs.base() < __rhs.base(); }
4227 
4228  template<typename _IteratorL, typename _IteratorR, typename _Container>
4229  inline bool
4230  operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
4231  const __normal_iterator<_IteratorR, _Container>& __rhs)
4232  noexcept
4233  { return __lhs.base() > __rhs.base(); }
4234 
4235  template<typename _Iterator, typename _Container>
4236  inline bool
4237  operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
4238  const __normal_iterator<_Iterator, _Container>& __rhs)
4239  noexcept
4240  { return __lhs.base() > __rhs.base(); }
4241 
4242  template<typename _IteratorL, typename _IteratorR, typename _Container>
4243  inline bool
4244  operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
4245  const __normal_iterator<_IteratorR, _Container>& __rhs)
4246  noexcept
4247  { return __lhs.base() <= __rhs.base(); }
4248 
4249  template<typename _Iterator, typename _Container>
4250  inline bool
4251  operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
4252  const __normal_iterator<_Iterator, _Container>& __rhs)
4253  noexcept
4254  { return __lhs.base() <= __rhs.base(); }
4255 
4256  template<typename _IteratorL, typename _IteratorR, typename _Container>
4257  inline bool
4258  operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
4259  const __normal_iterator<_IteratorR, _Container>& __rhs)
4260  noexcept
4261  { return __lhs.base() >= __rhs.base(); }
4262 
4263  template<typename _Iterator, typename _Container>
4264  inline bool
4265  operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
4266  const __normal_iterator<_Iterator, _Container>& __rhs)
4267  noexcept
4268  { return __lhs.base() >= __rhs.base(); }
4269 
4270 
4271 
4272 
4273 
4274  template<typename _IteratorL, typename _IteratorR, typename _Container>
4275 
4276 
4277  inline auto
4278  operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
4279  const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept
4280  -> decltype(__lhs.base() - __rhs.base())
4281 
4282 
4283 
4284 
4285 
4286  { return __lhs.base() - __rhs.base(); }
4287 
4288  template<typename _Iterator, typename _Container>
4289  inline typename __normal_iterator<_Iterator, _Container>::difference_type
4290  operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
4291  const __normal_iterator<_Iterator, _Container>& __rhs)
4292  noexcept
4293  { return __lhs.base() - __rhs.base(); }
4294 
4295  template<typename _Iterator, typename _Container>
4296  inline __normal_iterator<_Iterator, _Container>
4297  operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
4298  __n, const __normal_iterator<_Iterator, _Container>& __i)
4299  noexcept
4300  { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
4301 
4302 
4303 }
4304 
4305 
4306 
4307 namespace std __attribute__ ((__visibility__ ("default")))
4308 {
4309 # 946 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_iterator.h" 3
4310  template<typename _Iterator>
4311  class move_iterator
4312  {
4313  protected:
4314  _Iterator _M_current;
4315 
4316  typedef iterator_traits<_Iterator> __traits_type;
4317 
4318  public:
4319  typedef _Iterator iterator_type;
4320  typedef typename __traits_type::iterator_category iterator_category;
4321  typedef typename __traits_type::value_type value_type;
4322  typedef typename __traits_type::difference_type difference_type;
4323 
4324  typedef _Iterator pointer;
4325  typedef value_type&& reference;
4326 
4327  move_iterator()
4328  : _M_current() { }
4329 
4330  explicit
4331  move_iterator(iterator_type __i)
4332  : _M_current(__i) { }
4333 
4334  template<typename _Iter>
4335  move_iterator(const move_iterator<_Iter>& __i)
4336  : _M_current(__i.base()) { }
4337 
4338  iterator_type
4339  base() const
4340  { return _M_current; }
4341 
4342  reference
4343  operator*() const
4344  { return std::move(*_M_current); }
4345 
4346  pointer
4347  operator->() const
4348  { return _M_current; }
4349 
4350  move_iterator&
4351  operator++()
4352  {
4353  ++_M_current;
4354  return *this;
4355  }
4356 
4357  move_iterator
4358  operator++(int)
4359  {
4360  move_iterator __tmp = *this;
4361  ++_M_current;
4362  return __tmp;
4363  }
4364 
4365  move_iterator&
4366  operator--()
4367  {
4368  --_M_current;
4369  return *this;
4370  }
4371 
4372  move_iterator
4373  operator--(int)
4374  {
4375  move_iterator __tmp = *this;
4376  --_M_current;
4377  return __tmp;
4378  }
4379 
4380  move_iterator
4381  operator+(difference_type __n) const
4382  { return move_iterator(_M_current + __n); }
4383 
4384  move_iterator&
4385  operator+=(difference_type __n)
4386  {
4387  _M_current += __n;
4388  return *this;
4389  }
4390 
4391  move_iterator
4392  operator-(difference_type __n) const
4393  { return move_iterator(_M_current - __n); }
4394 
4395  move_iterator&
4396  operator-=(difference_type __n)
4397  {
4398  _M_current -= __n;
4399  return *this;
4400  }
4401 
4402  reference
4403  operator[](difference_type __n) const
4404  { return std::move(_M_current[__n]); }
4405  };
4406 
4407 
4408 
4409 
4410  template<typename _IteratorL, typename _IteratorR>
4411  inline bool
4412  operator==(const move_iterator<_IteratorL>& __x,
4413  const move_iterator<_IteratorR>& __y)
4414  { return __x.base() == __y.base(); }
4415 
4416  template<typename _Iterator>
4417  inline bool
4418  operator==(const move_iterator<_Iterator>& __x,
4419  const move_iterator<_Iterator>& __y)
4420  { return __x.base() == __y.base(); }
4421 
4422  template<typename _IteratorL, typename _IteratorR>
4423  inline bool
4424  operator!=(const move_iterator<_IteratorL>& __x,
4425  const move_iterator<_IteratorR>& __y)
4426  { return !(__x == __y); }
4427 
4428  template<typename _Iterator>
4429  inline bool
4430  operator!=(const move_iterator<_Iterator>& __x,
4431  const move_iterator<_Iterator>& __y)
4432  { return !(__x == __y); }
4433 
4434  template<typename _IteratorL, typename _IteratorR>
4435  inline bool
4436  operator<(const move_iterator<_IteratorL>& __x,
4437  const move_iterator<_IteratorR>& __y)
4438  { return __x.base() < __y.base(); }
4439 
4440  template<typename _Iterator>
4441  inline bool
4442  operator<(const move_iterator<_Iterator>& __x,
4443  const move_iterator<_Iterator>& __y)
4444  { return __x.base() < __y.base(); }
4445 
4446  template<typename _IteratorL, typename _IteratorR>
4447  inline bool
4448  operator<=(const move_iterator<_IteratorL>& __x,
4449  const move_iterator<_IteratorR>& __y)
4450  { return !(__y < __x); }
4451 
4452  template<typename _Iterator>
4453  inline bool
4454  operator<=(const move_iterator<_Iterator>& __x,
4455  const move_iterator<_Iterator>& __y)
4456  { return !(__y < __x); }
4457 
4458  template<typename _IteratorL, typename _IteratorR>
4459  inline bool
4460  operator>(const move_iterator<_IteratorL>& __x,
4461  const move_iterator<_IteratorR>& __y)
4462  { return __y < __x; }
4463 
4464  template<typename _Iterator>
4465  inline bool
4466  operator>(const move_iterator<_Iterator>& __x,
4467  const move_iterator<_Iterator>& __y)
4468  { return __y < __x; }
4469 
4470  template<typename _IteratorL, typename _IteratorR>
4471  inline bool
4472  operator>=(const move_iterator<_IteratorL>& __x,
4473  const move_iterator<_IteratorR>& __y)
4474  { return !(__x < __y); }
4475 
4476  template<typename _Iterator>
4477  inline bool
4478  operator>=(const move_iterator<_Iterator>& __x,
4479  const move_iterator<_Iterator>& __y)
4480  { return !(__x < __y); }
4481 
4482 
4483  template<typename _IteratorL, typename _IteratorR>
4484  inline auto
4485  operator-(const move_iterator<_IteratorL>& __x,
4486  const move_iterator<_IteratorR>& __y)
4487  -> decltype(__x.base() - __y.base())
4488  { return __x.base() - __y.base(); }
4489 
4490  template<typename _Iterator>
4491  inline auto
4492  operator-(const move_iterator<_Iterator>& __x,
4493  const move_iterator<_Iterator>& __y)
4494  -> decltype(__x.base() - __y.base())
4495  { return __x.base() - __y.base(); }
4496 
4497  template<typename _Iterator>
4498  inline move_iterator<_Iterator>
4499  operator+(typename move_iterator<_Iterator>::difference_type __n,
4500  const move_iterator<_Iterator>& __x)
4501  { return __x + __n; }
4502 
4503  template<typename _Iterator>
4504  inline move_iterator<_Iterator>
4505  make_move_iterator(_Iterator __i)
4506  { return move_iterator<_Iterator>(__i); }
4507 
4508  template<typename _Iterator, typename _ReturnType
4509  = typename conditional<__move_if_noexcept_cond
4510  <typename iterator_traits<_Iterator>::value_type>::value,
4511  _Iterator, move_iterator<_Iterator>>::type>
4512  inline _ReturnType
4513  __make_move_if_noexcept_iterator(_Iterator __i)
4514  { return _ReturnType(__i); }
4515 
4516 
4517 
4518 
4519 }
4520 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
4521 
4522 
4523 
4524 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/predefined_ops.h" 1 3
4525 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/predefined_ops.h" 3
4526 namespace __gnu_cxx
4527 {
4528 namespace __ops
4529 {
4530  struct _Iter_less_iter
4531  {
4532  template<typename _Iterator1, typename _Iterator2>
4533  bool
4534  operator()(_Iterator1 __it1, _Iterator2 __it2) const
4535  { return *__it1 < *__it2; }
4536  };
4537 
4538  inline _Iter_less_iter
4539  __iter_less_iter()
4540  { return _Iter_less_iter(); }
4541 
4542  struct _Iter_less_val
4543  {
4544  template<typename _Iterator, typename _Value>
4545  bool
4546  operator()(_Iterator __it, _Value& __val) const
4547  { return *__it < __val; }
4548  };
4549 
4550  inline _Iter_less_val
4551  __iter_less_val()
4552  { return _Iter_less_val(); }
4553 
4554  inline _Iter_less_val
4555  __iter_comp_val(_Iter_less_iter)
4556  { return _Iter_less_val(); }
4557 
4558  struct _Val_less_iter
4559  {
4560  template<typename _Value, typename _Iterator>
4561  bool
4562  operator()(_Value& __val, _Iterator __it) const
4563  { return __val < *__it; }
4564  };
4565 
4566  inline _Val_less_iter
4567  __val_less_iter()
4568  { return _Val_less_iter(); }
4569 
4570  inline _Val_less_iter
4571  __val_comp_iter(_Iter_less_iter)
4572  { return _Val_less_iter(); }
4573 
4574  struct _Iter_equal_to_iter
4575  {
4576  template<typename _Iterator1, typename _Iterator2>
4577  bool
4578  operator()(_Iterator1 __it1, _Iterator2 __it2) const
4579  { return *__it1 == *__it2; }
4580  };
4581 
4582  inline _Iter_equal_to_iter
4583  __iter_equal_to_iter()
4584  { return _Iter_equal_to_iter(); }
4585 
4586  struct _Iter_equal_to_val
4587  {
4588  template<typename _Iterator, typename _Value>
4589  bool
4590  operator()(_Iterator __it, _Value& __val) const
4591  { return *__it == __val; }
4592  };
4593 
4594  inline _Iter_equal_to_val
4595  __iter_equal_to_val()
4596  { return _Iter_equal_to_val(); }
4597 
4598  inline _Iter_equal_to_val
4599  __iter_comp_val(_Iter_equal_to_iter)
4600  { return _Iter_equal_to_val(); }
4601 
4602  template<typename _Compare>
4603  struct _Iter_comp_iter
4604  {
4605  _Compare _M_comp;
4606 
4607  _Iter_comp_iter(_Compare __comp)
4608  : _M_comp(__comp)
4609  { }
4610 
4611  template<typename _Iterator1, typename _Iterator2>
4612  bool
4613  operator()(_Iterator1 __it1, _Iterator2 __it2)
4614  { return bool(_M_comp(*__it1, *__it2)); }
4615  };
4616 
4617  template<typename _Compare>
4618  inline _Iter_comp_iter<_Compare>
4619  __iter_comp_iter(_Compare __comp)
4620  { return _Iter_comp_iter<_Compare>(__comp); }
4621 
4622  template<typename _Compare>
4623  struct _Iter_comp_val
4624  {
4625  _Compare _M_comp;
4626 
4627  _Iter_comp_val(_Compare __comp)
4628  : _M_comp(__comp)
4629  { }
4630 
4631  template<typename _Iterator, typename _Value>
4632  bool
4633  operator()(_Iterator __it, _Value& __val)
4634  { return bool(_M_comp(*__it, __val)); }
4635  };
4636 
4637  template<typename _Compare>
4638  inline _Iter_comp_val<_Compare>
4639  __iter_comp_val(_Compare __comp)
4640  { return _Iter_comp_val<_Compare>(__comp); }
4641 
4642  template<typename _Compare>
4643  inline _Iter_comp_val<_Compare>
4644  __iter_comp_val(_Iter_comp_iter<_Compare> __comp)
4645  { return _Iter_comp_val<_Compare>(__comp._M_comp); }
4646 
4647  template<typename _Compare>
4648  struct _Val_comp_iter
4649  {
4650  _Compare _M_comp;
4651 
4652  _Val_comp_iter(_Compare __comp)
4653  : _M_comp(__comp)
4654  { }
4655 
4656  template<typename _Value, typename _Iterator>
4657  bool
4658  operator()(_Value& __val, _Iterator __it)
4659  { return bool(_M_comp(__val, *__it)); }
4660  };
4661 
4662  template<typename _Compare>
4663  inline _Val_comp_iter<_Compare>
4664  __val_comp_iter(_Compare __comp)
4665  { return _Val_comp_iter<_Compare>(__comp); }
4666 
4667  template<typename _Compare>
4668  inline _Val_comp_iter<_Compare>
4669  __val_comp_iter(_Iter_comp_iter<_Compare> __comp)
4670  { return _Val_comp_iter<_Compare>(__comp._M_comp); }
4671 
4672  template<typename _Value>
4673  struct _Iter_equals_val
4674  {
4675  _Value& _M_value;
4676 
4677  _Iter_equals_val(_Value& __value)
4678  : _M_value(__value)
4679  { }
4680 
4681  template<typename _Iterator>
4682  bool
4683  operator()(_Iterator __it)
4684  { return *__it == _M_value; }
4685  };
4686 
4687  template<typename _Value>
4688  inline _Iter_equals_val<_Value>
4689  __iter_equals_val(_Value& __val)
4690  { return _Iter_equals_val<_Value>(__val); }
4691 
4692  template<typename _Iterator1>
4693  struct _Iter_equals_iter
4694  {
4695  typename std::iterator_traits<_Iterator1>::reference _M_ref;
4696 
4697  _Iter_equals_iter(_Iterator1 __it1)
4698  : _M_ref(*__it1)
4699  { }
4700 
4701  template<typename _Iterator2>
4702  bool
4703  operator()(_Iterator2 __it2)
4704  { return *__it2 == _M_ref; }
4705  };
4706 
4707  template<typename _Iterator>
4708  inline _Iter_equals_iter<_Iterator>
4709  __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it)
4710  { return _Iter_equals_iter<_Iterator>(__it); }
4711 
4712  template<typename _Predicate>
4713  struct _Iter_pred
4714  {
4715  _Predicate _M_pred;
4716 
4717  _Iter_pred(_Predicate __pred)
4718  : _M_pred(__pred)
4719  { }
4720 
4721  template<typename _Iterator>
4722  bool
4723  operator()(_Iterator __it)
4724  { return bool(_M_pred(*__it)); }
4725  };
4726 
4727  template<typename _Predicate>
4728  inline _Iter_pred<_Predicate>
4729  __pred_iter(_Predicate __pred)
4730  { return _Iter_pred<_Predicate>(__pred); }
4731 
4732  template<typename _Compare, typename _Value>
4733  struct _Iter_comp_to_val
4734  {
4735  _Compare _M_comp;
4736  _Value& _M_value;
4737 
4738  _Iter_comp_to_val(_Compare __comp, _Value& __value)
4739  : _M_comp(__comp), _M_value(__value)
4740  { }
4741 
4742  template<typename _Iterator>
4743  bool
4744  operator()(_Iterator __it)
4745  { return bool(_M_comp(*__it, _M_value)); }
4746  };
4747 
4748  template<typename _Compare, typename _Value>
4749  _Iter_comp_to_val<_Compare, _Value>
4750  __iter_comp_val(_Compare __comp, _Value &__val)
4751  { return _Iter_comp_to_val<_Compare, _Value>(__comp, __val); }
4752 
4753  template<typename _Compare, typename _Iterator1>
4754  struct _Iter_comp_to_iter
4755  {
4756  _Compare _M_comp;
4757  typename std::iterator_traits<_Iterator1>::reference _M_ref;
4758 
4759  _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1)
4760  : _M_comp(__comp), _M_ref(*__it1)
4761  { }
4762 
4763  template<typename _Iterator2>
4764  bool
4765  operator()(_Iterator2 __it2)
4766  { return bool(_M_comp(*__it2, _M_ref)); }
4767  };
4768 
4769  template<typename _Compare, typename _Iterator>
4770  inline _Iter_comp_to_iter<_Compare, _Iterator>
4771  __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it)
4772  { return _Iter_comp_to_iter<_Compare, _Iterator>(__comp._M_comp, __it); }
4773 
4774  template<typename _Predicate>
4775  struct _Iter_negate
4776  {
4777  _Predicate _M_pred;
4778 
4779  _Iter_negate(_Predicate __pred)
4780  : _M_pred(__pred)
4781  { }
4782 
4783  template<typename _Iterator>
4784  bool
4785  operator()(_Iterator __it)
4786  { return !bool(_M_pred(*__it)); }
4787  };
4788 
4789  template<typename _Predicate>
4790  inline _Iter_negate<_Predicate>
4791  __negate(_Iter_pred<_Predicate> __pred)
4792  { return _Iter_negate<_Predicate>(__pred._M_pred); }
4793 
4794 }
4795 }
4796 # 72 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 2 3
4797 
4798 namespace std __attribute__ ((__visibility__ ("default")))
4799 {
4800 # 118 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4801  template<typename _ForwardIterator1, typename _ForwardIterator2>
4802  inline void
4803  iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
4804  {
4805 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4806  swap(*__a, *__b);
4807 
4808  }
4809 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4810  template<typename _ForwardIterator1, typename _ForwardIterator2>
4811  _ForwardIterator2
4812  swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
4813  _ForwardIterator2 __first2)
4814  {
4815 
4816 
4817 
4818 
4819 
4820  ;
4821 
4822  for (; __first1 != __last1; ++__first1, ++__first2)
4823  std::iter_swap(__first1, __first2);
4824  return __first2;
4825  }
4826 # 192 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4827  template<typename _Tp>
4828  inline const _Tp&
4829  min(const _Tp& __a, const _Tp& __b)
4830  {
4831 
4832 
4833 
4834  if (__b < __a)
4835  return __b;
4836  return __a;
4837  }
4838 # 215 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4839  template<typename _Tp>
4840  inline const _Tp&
4841  max(const _Tp& __a, const _Tp& __b)
4842  {
4843 
4844 
4845 
4846  if (__a < __b)
4847  return __b;
4848  return __a;
4849  }
4850 # 238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4851  template<typename _Tp, typename _Compare>
4852  inline const _Tp&
4853  min(const _Tp& __a, const _Tp& __b, _Compare __comp)
4854  {
4855 
4856  if (__comp(__b, __a))
4857  return __b;
4858  return __a;
4859  }
4860 # 259 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
4861  template<typename _Tp, typename _Compare>
4862  inline const _Tp&
4863  max(const _Tp& __a, const _Tp& __b, _Compare __comp)
4864  {
4865 
4866  if (__comp(__a, __b))
4867  return __b;
4868  return __a;
4869  }
4870 
4871 
4872 
4873  template<typename _Iterator>
4874  struct _Niter_base
4875  : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value>
4876  { };
4877 
4878  template<typename _Iterator>
4879  inline typename _Niter_base<_Iterator>::iterator_type
4880  __niter_base(_Iterator __it)
4881  { return std::_Niter_base<_Iterator>::_S_base(__it); }
4882 
4883 
4884  template<typename _Iterator>
4885  struct _Miter_base
4886  : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value>
4887  { };
4888 
4889  template<typename _Iterator>
4890  inline typename _Miter_base<_Iterator>::iterator_type
4891  __miter_base(_Iterator __it)
4892  { return std::_Miter_base<_Iterator>::_S_base(__it); }
4893 
4894 
4895 
4896 
4897 
4898 
4899 
4900  template<bool, bool, typename>
4901  struct __copy_move
4902  {
4903  template<typename _II, typename _OI>
4904  static _OI
4905  __copy_m(_II __first, _II __last, _OI __result)
4906  {
4907  for (; __first != __last; ++__result, ++__first)
4908  *__result = *__first;
4909  return __result;
4910  }
4911  };
4912 
4913 
4914  template<typename _Category>
4915  struct __copy_move<true, false, _Category>
4916  {
4917  template<typename _II, typename _OI>
4918  static _OI
4919  __copy_m(_II __first, _II __last, _OI __result)
4920  {
4921  for (; __first != __last; ++__result, ++__first)
4922  *__result = std::move(*__first);
4923  return __result;
4924  }
4925  };
4926 
4927 
4928  template<>
4929  struct __copy_move<false, false, random_access_iterator_tag>
4930  {
4931  template<typename _II, typename _OI>
4932  static _OI
4933  __copy_m(_II __first, _II __last, _OI __result)
4934  {
4935  typedef typename iterator_traits<_II>::difference_type _Distance;
4936  for(_Distance __n = __last - __first; __n > 0; --__n)
4937  {
4938  *__result = *__first;
4939  ++__first;
4940  ++__result;
4941  }
4942  return __result;
4943  }
4944  };
4945 
4946 
4947  template<>
4948  struct __copy_move<true, false, random_access_iterator_tag>
4949  {
4950  template<typename _II, typename _OI>
4951  static _OI
4952  __copy_m(_II __first, _II __last, _OI __result)
4953  {
4954  typedef typename iterator_traits<_II>::difference_type _Distance;
4955  for(_Distance __n = __last - __first; __n > 0; --__n)
4956  {
4957  *__result = std::move(*__first);
4958  ++__first;
4959  ++__result;
4960  }
4961  return __result;
4962  }
4963  };
4964 
4965 
4966  template<bool _IsMove>
4967  struct __copy_move<_IsMove, true, random_access_iterator_tag>
4968  {
4969  template<typename _Tp>
4970  static _Tp*
4971  __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
4972  {
4973 
4974 
4975  static_assert( is_copy_assignable<_Tp>::value,
4976  "type is not assignable" );
4977 
4978  const ptrdiff_t _Num = __last - __first;
4979  if (_Num)
4980  __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
4981  return __result + _Num;
4982  }
4983  };
4984 
4985  template<bool _IsMove, typename _II, typename _OI>
4986  inline _OI
4987  __copy_move_a(_II __first, _II __last, _OI __result)
4988  {
4989  typedef typename iterator_traits<_II>::value_type _ValueTypeI;
4990  typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
4991  typedef typename iterator_traits<_II>::iterator_category _Category;
4992  const bool __simple = (__is_trivial(_ValueTypeI)
4993  && __is_pointer<_II>::__value
4994  && __is_pointer<_OI>::__value
4995  && __are_same<_ValueTypeI, _ValueTypeO>::__value);
4996 
4997  return std::__copy_move<_IsMove, __simple,
4998  _Category>::__copy_m(__first, __last, __result);
4999  }
5000 
5001 
5002 
5003  template<typename _CharT>
5004  struct char_traits;
5005 
5006  template<typename _CharT, typename _Traits>
5007  class istreambuf_iterator;
5008 
5009  template<typename _CharT, typename _Traits>
5010  class ostreambuf_iterator;
5011 
5012  template<bool _IsMove, typename _CharT>
5013  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5014  ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
5015  __copy_move_a2(_CharT*, _CharT*,
5016  ostreambuf_iterator<_CharT, char_traits<_CharT> >);
5017 
5018  template<bool _IsMove, typename _CharT>
5019  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5020  ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
5021  __copy_move_a2(const _CharT*, const _CharT*,
5022  ostreambuf_iterator<_CharT, char_traits<_CharT> >);
5023 
5024  template<bool _IsMove, typename _CharT>
5025  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
5026  _CharT*>::__type
5027  __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
5028  istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
5029 
5030  template<bool _IsMove, typename _II, typename _OI>
5031  inline _OI
5032  __copy_move_a2(_II __first, _II __last, _OI __result)
5033  {
5034  return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
5035  std::__niter_base(__last),
5036  std::__niter_base(__result)));
5037  }
5038 # 454 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5039  template<typename _II, typename _OI>
5040  inline _OI
5041  copy(_II __first, _II __last, _OI __result)
5042  {
5043 
5044 
5045 
5046 
5047  ;
5048 
5049  return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
5050  (std::__miter_base(__first), std::__miter_base(__last),
5051  __result));
5052  }
5053 # 487 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5054  template<typename _II, typename _OI>
5055  inline _OI
5056  move(_II __first, _II __last, _OI __result)
5057  {
5058 
5059 
5060 
5061 
5062  ;
5063 
5064  return std::__copy_move_a2<true>(std::__miter_base(__first),
5065  std::__miter_base(__last), __result);
5066  }
5067 
5068 
5069 
5070 
5071 
5072 
5073  template<bool, bool, typename>
5074  struct __copy_move_backward
5075  {
5076  template<typename _BI1, typename _BI2>
5077  static _BI2
5078  __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5079  {
5080  while (__first != __last)
5081  *--__result = *--__last;
5082  return __result;
5083  }
5084  };
5085 
5086 
5087  template<typename _Category>
5088  struct __copy_move_backward<true, false, _Category>
5089  {
5090  template<typename _BI1, typename _BI2>
5091  static _BI2
5092  __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5093  {
5094  while (__first != __last)
5095  *--__result = std::move(*--__last);
5096  return __result;
5097  }
5098  };
5099 
5100 
5101  template<>
5102  struct __copy_move_backward<false, false, random_access_iterator_tag>
5103  {
5104  template<typename _BI1, typename _BI2>
5105  static _BI2
5106  __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5107  {
5108  typename iterator_traits<_BI1>::difference_type __n;
5109  for (__n = __last - __first; __n > 0; --__n)
5110  *--__result = *--__last;
5111  return __result;
5112  }
5113  };
5114 
5115 
5116  template<>
5117  struct __copy_move_backward<true, false, random_access_iterator_tag>
5118  {
5119  template<typename _BI1, typename _BI2>
5120  static _BI2
5121  __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
5122  {
5123  typename iterator_traits<_BI1>::difference_type __n;
5124  for (__n = __last - __first; __n > 0; --__n)
5125  *--__result = std::move(*--__last);
5126  return __result;
5127  }
5128  };
5129 
5130 
5131  template<bool _IsMove>
5132  struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
5133  {
5134  template<typename _Tp>
5135  static _Tp*
5136  __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
5137  {
5138 
5139 
5140  static_assert( is_copy_assignable<_Tp>::value,
5141  "type is not assignable" );
5142 
5143  const ptrdiff_t _Num = __last - __first;
5144  if (_Num)
5145  __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
5146  return __result - _Num;
5147  }
5148  };
5149 
5150  template<bool _IsMove, typename _BI1, typename _BI2>
5151  inline _BI2
5152  __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result)
5153  {
5154  typedef typename iterator_traits<_BI1>::value_type _ValueType1;
5155  typedef typename iterator_traits<_BI2>::value_type _ValueType2;
5156  typedef typename iterator_traits<_BI1>::iterator_category _Category;
5157  const bool __simple = (__is_trivial(_ValueType1)
5158  && __is_pointer<_BI1>::__value
5159  && __is_pointer<_BI2>::__value
5160  && __are_same<_ValueType1, _ValueType2>::__value);
5161 
5162  return std::__copy_move_backward<_IsMove, __simple,
5163  _Category>::__copy_move_b(__first,
5164  __last,
5165  __result);
5166  }
5167 
5168  template<bool _IsMove, typename _BI1, typename _BI2>
5169  inline _BI2
5170  __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
5171  {
5172  return _BI2(std::__copy_move_backward_a<_IsMove>
5173  (std::__niter_base(__first), std::__niter_base(__last),
5174  std::__niter_base(__result)));
5175  }
5176 # 628 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5177  template<typename _BI1, typename _BI2>
5178  inline _BI2
5179  copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
5180  {
5181 
5182 
5183 
5184 
5185 
5186 
5187  ;
5188 
5189  return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value>
5190  (std::__miter_base(__first), std::__miter_base(__last),
5191  __result));
5192  }
5193 # 664 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5194  template<typename _BI1, typename _BI2>
5195  inline _BI2
5196  move_backward(_BI1 __first, _BI1 __last, _BI2 __result)
5197  {
5198 
5199 
5200 
5201 
5202 
5203 
5204  ;
5205 
5206  return std::__copy_move_backward_a2<true>(std::__miter_base(__first),
5207  std::__miter_base(__last),
5208  __result);
5209  }
5210 
5211 
5212 
5213 
5214 
5215 
5216  template<typename _ForwardIterator, typename _Tp>
5217  inline typename
5218  __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type
5219  __fill_a(_ForwardIterator __first, _ForwardIterator __last,
5220  const _Tp& __value)
5221  {
5222  for (; __first != __last; ++__first)
5223  *__first = __value;
5224  }
5225 
5226  template<typename _ForwardIterator, typename _Tp>
5227  inline typename
5228  __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type
5229  __fill_a(_ForwardIterator __first, _ForwardIterator __last,
5230  const _Tp& __value)
5231  {
5232  const _Tp __tmp = __value;
5233  for (; __first != __last; ++__first)
5234  *__first = __tmp;
5235  }
5236 
5237 
5238  template<typename _Tp>
5239  inline typename
5240  __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type
5241  __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c)
5242  {
5243  const _Tp __tmp = __c;
5244  __builtin_memset(__first, static_cast<unsigned char>(__tmp),
5245  __last - __first);
5246  }
5247 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5248  template<typename _ForwardIterator, typename _Tp>
5249  inline void
5250  fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
5251  {
5252 
5253 
5254 
5255  ;
5256 
5257  std::__fill_a(std::__niter_base(__first), std::__niter_base(__last),
5258  __value);
5259  }
5260 
5261  template<typename _OutputIterator, typename _Size, typename _Tp>
5262  inline typename
5263  __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
5264  __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
5265  {
5266  for (__decltype(__n + 0) __niter = __n;
5267  __niter > 0; --__niter, ++__first)
5268  *__first = __value;
5269  return __first;
5270  }
5271 
5272  template<typename _OutputIterator, typename _Size, typename _Tp>
5273  inline typename
5274  __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
5275  __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
5276  {
5277  const _Tp __tmp = __value;
5278  for (__decltype(__n + 0) __niter = __n;
5279  __niter > 0; --__niter, ++__first)
5280  *__first = __tmp;
5281  return __first;
5282  }
5283 
5284  template<typename _Size, typename _Tp>
5285  inline typename
5286  __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type
5287  __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c)
5288  {
5289  std::__fill_a(__first, __first + __n, __c);
5290  return __first + __n;
5291  }
5292 # 790 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5293  template<typename _OI, typename _Size, typename _Tp>
5294  inline _OI
5295  fill_n(_OI __first, _Size __n, const _Tp& __value)
5296  {
5297 
5298 
5299 
5300  return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value));
5301  }
5302 
5303  template<bool _BoolType>
5304  struct __equal
5305  {
5306  template<typename _II1, typename _II2>
5307  static bool
5308  equal(_II1 __first1, _II1 __last1, _II2 __first2)
5309  {
5310  for (; __first1 != __last1; ++__first1, ++__first2)
5311  if (!(*__first1 == *__first2))
5312  return false;
5313  return true;
5314  }
5315  };
5316 
5317  template<>
5318  struct __equal<true>
5319  {
5320  template<typename _Tp>
5321  static bool
5322  equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
5323  {
5324  return !__builtin_memcmp(__first1, __first2, sizeof(_Tp)
5325  * (__last1 - __first1));
5326  }
5327  };
5328 
5329  template<typename _II1, typename _II2>
5330  inline bool
5331  __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
5332  {
5333  typedef typename iterator_traits<_II1>::value_type _ValueType1;
5334  typedef typename iterator_traits<_II2>::value_type _ValueType2;
5335  const bool __simple = ((__is_integer<_ValueType1>::__value
5336  || __is_pointer<_ValueType1>::__value)
5337  && __is_pointer<_II1>::__value
5338  && __is_pointer<_II2>::__value
5339  && __are_same<_ValueType1, _ValueType2>::__value);
5340 
5341  return std::__equal<__simple>::equal(__first1, __last1, __first2);
5342  }
5343 
5344  template<typename, typename>
5345  struct __lc_rai
5346  {
5347  template<typename _II1, typename _II2>
5348  static _II1
5349  __newlast1(_II1, _II1 __last1, _II2, _II2)
5350  { return __last1; }
5351 
5352  template<typename _II>
5353  static bool
5354  __cnd2(_II __first, _II __last)
5355  { return __first != __last; }
5356  };
5357 
5358  template<>
5359  struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
5360  {
5361  template<typename _RAI1, typename _RAI2>
5362  static _RAI1
5363  __newlast1(_RAI1 __first1, _RAI1 __last1,
5364  _RAI2 __first2, _RAI2 __last2)
5365  {
5366  const typename iterator_traits<_RAI1>::difference_type
5367  __diff1 = __last1 - __first1;
5368  const typename iterator_traits<_RAI2>::difference_type
5369  __diff2 = __last2 - __first2;
5370  return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
5371  }
5372 
5373  template<typename _RAI>
5374  static bool
5375  __cnd2(_RAI, _RAI)
5376  { return true; }
5377  };
5378 
5379  template<typename _II1, typename _II2, typename _Compare>
5380  bool
5381  __lexicographical_compare_impl(_II1 __first1, _II1 __last1,
5382  _II2 __first2, _II2 __last2,
5383  _Compare __comp)
5384  {
5385  typedef typename iterator_traits<_II1>::iterator_category _Category1;
5386  typedef typename iterator_traits<_II2>::iterator_category _Category2;
5387  typedef std::__lc_rai<_Category1, _Category2> __rai_type;
5388 
5389  __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
5390  for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
5391  ++__first1, ++__first2)
5392  {
5393  if (__comp(__first1, __first2))
5394  return true;
5395  if (__comp(__first2, __first1))
5396  return false;
5397  }
5398  return __first1 == __last1 && __first2 != __last2;
5399  }
5400 
5401  template<bool _BoolType>
5402  struct __lexicographical_compare
5403  {
5404  template<typename _II1, typename _II2>
5405  static bool __lc(_II1, _II1, _II2, _II2);
5406  };
5407 
5408  template<bool _BoolType>
5409  template<typename _II1, typename _II2>
5410  bool
5411  __lexicographical_compare<_BoolType>::
5412  __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
5413  {
5414  return std::__lexicographical_compare_impl(__first1, __last1,
5415  __first2, __last2,
5416  __gnu_cxx::__ops::__iter_less_iter());
5417  }
5418 
5419  template<>
5420  struct __lexicographical_compare<true>
5421  {
5422  template<typename _Tp, typename _Up>
5423  static bool
5424  __lc(const _Tp* __first1, const _Tp* __last1,
5425  const _Up* __first2, const _Up* __last2)
5426  {
5427  const size_t __len1 = __last1 - __first1;
5428  const size_t __len2 = __last2 - __first2;
5429  const int __result = __builtin_memcmp(__first1, __first2,
5430  std::min(__len1, __len2));
5431  return __result != 0 ? __result < 0 : __len1 < __len2;
5432  }
5433  };
5434 
5435  template<typename _II1, typename _II2>
5436  inline bool
5437  __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
5438  _II2 __first2, _II2 __last2)
5439  {
5440  typedef typename iterator_traits<_II1>::value_type _ValueType1;
5441  typedef typename iterator_traits<_II2>::value_type _ValueType2;
5442  const bool __simple =
5443  (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
5444  && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
5445  && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
5446  && __is_pointer<_II1>::__value
5447  && __is_pointer<_II2>::__value);
5448 
5449  return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
5450  __first2, __last2);
5451  }
5452 
5453  template<typename _ForwardIterator, typename _Tp, typename _Compare>
5454  _ForwardIterator
5455  __lower_bound(_ForwardIterator __first, _ForwardIterator __last,
5456  const _Tp& __val, _Compare __comp)
5457  {
5458  typedef typename iterator_traits<_ForwardIterator>::difference_type
5459  _DistanceType;
5460 
5461  _DistanceType __len = std::distance(__first, __last);
5462 
5463  while (__len > 0)
5464  {
5465  _DistanceType __half = __len >> 1;
5466  _ForwardIterator __middle = __first;
5467  std::advance(__middle, __half);
5468  if (__comp(__middle, __val))
5469  {
5470  __first = __middle;
5471  ++__first;
5472  __len = __len - __half - 1;
5473  }
5474  else
5475  __len = __half;
5476  }
5477  return __first;
5478  }
5479 # 988 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5480  template<typename _ForwardIterator, typename _Tp>
5481  inline _ForwardIterator
5482  lower_bound(_ForwardIterator __first, _ForwardIterator __last,
5483  const _Tp& __val)
5484  {
5485 
5486 
5487 
5488 
5489  ;
5490 
5491  return std::__lower_bound(__first, __last, __val,
5492  __gnu_cxx::__ops::__iter_less_val());
5493  }
5494 
5495 
5496 
5497  inline constexpr int
5498  __lg(int __n)
5499  { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
5500 
5501  inline constexpr unsigned
5502  __lg(unsigned __n)
5503  { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
5504 
5505  inline constexpr long
5506  __lg(long __n)
5507  { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
5508 
5509  inline constexpr unsigned long
5510  __lg(unsigned long __n)
5511  { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
5512 
5513  inline constexpr long long
5514  __lg(long long __n)
5515  { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
5516 
5517  inline constexpr unsigned long long
5518  __lg(unsigned long long __n)
5519  { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
5520 # 1045 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5521  template<typename _II1, typename _II2>
5522  inline bool
5523  equal(_II1 __first1, _II1 __last1, _II2 __first2)
5524  {
5525 
5526 
5527 
5528 
5529 
5530 
5531  ;
5532 
5533  return std::__equal_aux(std::__niter_base(__first1),
5534  std::__niter_base(__last1),
5535  std::__niter_base(__first2));
5536  }
5537 # 1077 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5538  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
5539  inline bool
5540  equal(_IIter1 __first1, _IIter1 __last1,
5541  _IIter2 __first2, _BinaryPredicate __binary_pred)
5542  {
5543 
5544 
5545 
5546  ;
5547 
5548  for (; __first1 != __last1; ++__first1, ++__first2)
5549  if (!bool(__binary_pred(*__first1, *__first2)))
5550  return false;
5551  return true;
5552  }
5553 # 1202 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5554  template<typename _II1, typename _II2>
5555  inline bool
5556  lexicographical_compare(_II1 __first1, _II1 __last1,
5557  _II2 __first2, _II2 __last2)
5558  {
5559 # 1216 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5560  ;
5561  ;
5562 
5563  return std::__lexicographical_compare_aux(std::__niter_base(__first1),
5564  std::__niter_base(__last1),
5565  std::__niter_base(__first2),
5566  std::__niter_base(__last2));
5567  }
5568 # 1238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5569  template<typename _II1, typename _II2, typename _Compare>
5570  inline bool
5571  lexicographical_compare(_II1 __first1, _II1 __last1,
5572  _II2 __first2, _II2 __last2, _Compare __comp)
5573  {
5574 
5575 
5576 
5577  ;
5578  ;
5579 
5580  return std::__lexicographical_compare_impl
5581  (__first1, __last1, __first2, __last2,
5582  __gnu_cxx::__ops::__iter_comp_iter(__comp));
5583  }
5584 
5585  template<typename _InputIterator1, typename _InputIterator2,
5586  typename _BinaryPredicate>
5587  pair<_InputIterator1, _InputIterator2>
5588  __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5589  _InputIterator2 __first2, _BinaryPredicate __binary_pred)
5590  {
5591  while (__first1 != __last1 && __binary_pred(__first1, __first2))
5592  {
5593  ++__first1;
5594  ++__first2;
5595  }
5596  return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
5597  }
5598 # 1281 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5599  template<typename _InputIterator1, typename _InputIterator2>
5600  inline pair<_InputIterator1, _InputIterator2>
5601  mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5602  _InputIterator2 __first2)
5603  {
5604 
5605 
5606 
5607 
5608 
5609 
5610  ;
5611 
5612  return std::__mismatch(__first1, __last1, __first2,
5613  __gnu_cxx::__ops::__iter_equal_to_iter());
5614  }
5615 # 1314 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5616  template<typename _InputIterator1, typename _InputIterator2,
5617  typename _BinaryPredicate>
5618  inline pair<_InputIterator1, _InputIterator2>
5619  mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
5620  _InputIterator2 __first2, _BinaryPredicate __binary_pred)
5621  {
5622 
5623 
5624 
5625  ;
5626 
5627  return std::__mismatch(__first1, __last1, __first2,
5628  __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
5629  }
5630 # 1415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algobase.h" 3
5631 }
5632 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
5633 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 1 3
5634 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
5635 
5636 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
5637 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
5638 
5639 
5640 
5641 
5642 # 1 "/usr/include/wchar.h" 1 3 4
5643 # 36 "/usr/include/wchar.h" 3 4
5644 # 1 "/usr/include/stdio.h" 1 3 4
5645 # 44 "/usr/include/stdio.h" 3 4
5646 struct _IO_FILE;
5647 
5648 
5649 
5650 typedef struct _IO_FILE FILE;
5651 # 64 "/usr/include/stdio.h" 3 4
5652 typedef struct _IO_FILE __FILE;
5653 # 37 "/usr/include/wchar.h" 2 3 4
5654 
5655 
5656 # 1 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 1 3 4
5657 # 30 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 3 4
5658 typedef __builtin_va_list va_list;
5659 # 48 "/usr/bin/../lib/clang/3.4.2/include/stdarg.h" 3 4
5660 typedef __builtin_va_list __gnuc_va_list;
5661 # 40 "/usr/include/wchar.h" 2 3 4
5662 # 51 "/usr/include/wchar.h" 3 4
5663 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
5664 # 34 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5665 typedef long int ptrdiff_t;
5666 
5667 
5668 
5669 
5670 
5671 
5672 
5673 typedef long unsigned int size_t;
5674 # 89 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5675 typedef struct {
5676  long long __clang_max_align_nonce1
5677  __attribute__((__aligned__(__alignof__(long long))));
5678  long double __clang_max_align_nonce2
5679  __attribute__((__aligned__(__alignof__(long double))));
5680 } max_align_t;
5681 # 113 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 3 4
5682 typedef unsigned int wint_t;
5683 # 52 "/usr/include/wchar.h" 2 3 4
5684 # 82 "/usr/include/wchar.h" 3 4
5685 typedef struct
5686 {
5687  int __count;
5688  union
5689  {
5690 
5691  unsigned int __wch;
5692 
5693 
5694 
5695  char __wchb[4];
5696  } __value;
5697 } __mbstate_t;
5698 # 106 "/usr/include/wchar.h" 3 4
5699 typedef __mbstate_t mbstate_t;
5700 # 132 "/usr/include/wchar.h" 3 4
5701 extern "C" {
5702 
5703 
5704 
5705 
5706 struct tm;
5707 # 147 "/usr/include/wchar.h" 3 4
5708 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
5709  const wchar_t *__restrict __src) throw ();
5710 
5711 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
5712  const wchar_t *__restrict __src, size_t __n)
5713  throw ();
5714 
5715 
5716 extern wchar_t *wcscat (wchar_t *__restrict __dest,
5717  const wchar_t *__restrict __src) throw ();
5718 
5719 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
5720  const wchar_t *__restrict __src, size_t __n)
5721  throw ();
5722 
5723 
5724 extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
5725  throw () __attribute__ ((__pure__));
5726 
5727 extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
5728  throw () __attribute__ ((__pure__));
5729 
5730 
5731 
5732 
5733 extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw ();
5734 
5735 
5736 extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
5737  size_t __n) throw ();
5738 
5739 
5740 
5741 
5742 # 1 "/usr/include/xlocale.h" 1 3 4
5743 # 27 "/usr/include/xlocale.h" 3 4
5744 typedef struct __locale_struct
5745 {
5746 
5747  struct __locale_data *__locales[13];
5748 
5749 
5750  const unsigned short int *__ctype_b;
5751  const int *__ctype_tolower;
5752  const int *__ctype_toupper;
5753 
5754 
5755  const char *__names[13];
5756 } *__locale_t;
5757 
5758 
5759 typedef __locale_t locale_t;
5760 # 181 "/usr/include/wchar.h" 2 3 4
5761 
5762 extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
5763  __locale_t __loc) throw ();
5764 
5765 extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
5766  size_t __n, __locale_t __loc) throw ();
5767 
5768 
5769 
5770 
5771 
5772 extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw ();
5773 
5774 
5775 
5776 extern size_t wcsxfrm (wchar_t *__restrict __s1,
5777  const wchar_t *__restrict __s2, size_t __n) throw ();
5778 # 206 "/usr/include/wchar.h" 3 4
5779 extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
5780  __locale_t __loc) throw ();
5781 
5782 
5783 
5784 
5785 extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
5786  size_t __n, __locale_t __loc) throw ();
5787 
5788 
5789 extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__));
5790 # 227 "/usr/include/wchar.h" 3 4
5791 extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
5792  throw () __attribute__ ((__pure__));
5793 # 237 "/usr/include/wchar.h" 3 4
5794 extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
5795  throw () __attribute__ ((__pure__));
5796 
5797 
5798 
5799 
5800 
5801 
5802 extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
5803  throw () __attribute__ ((__pure__));
5804 
5805 
5806 
5807 
5808 
5809 extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
5810  throw () __attribute__ ((__pure__));
5811 
5812 
5813 extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
5814  throw () __attribute__ ((__pure__));
5815 # 266 "/usr/include/wchar.h" 3 4
5816 extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
5817  throw () __attribute__ ((__pure__));
5818 # 277 "/usr/include/wchar.h" 3 4
5819 extern wchar_t *wcsstr (const wchar_t *__haystack, const wchar_t *__needle)
5820  throw () __attribute__ ((__pure__));
5821 
5822 
5823 
5824 extern wchar_t *wcstok (wchar_t *__restrict __s,
5825  const wchar_t *__restrict __delim,
5826  wchar_t **__restrict __ptr) throw ();
5827 
5828 
5829 extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__));
5830 # 299 "/usr/include/wchar.h" 3 4
5831 extern wchar_t *wcswcs (const wchar_t *__haystack, const wchar_t *__needle)
5832  throw () __attribute__ ((__pure__));
5833 
5834 
5835 
5836 
5837 
5838 extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
5839  throw () __attribute__ ((__pure__));
5840 # 320 "/usr/include/wchar.h" 3 4
5841 extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
5842  throw () __attribute__ ((__pure__));
5843 
5844 
5845 
5846 extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
5847  throw () __attribute__ ((__pure__));
5848 
5849 
5850 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
5851  const wchar_t *__restrict __s2, size_t __n) throw ();
5852 
5853 
5854 
5855 extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
5856  throw ();
5857 
5858 
5859 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
5860 
5861 
5862 
5863 
5864 
5865 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
5866  const wchar_t *__restrict __s2, size_t __n)
5867  throw ();
5868 
5869 
5870 
5871 
5872 
5873 
5874 extern wint_t btowc (int __c) throw ();
5875 
5876 
5877 
5878 extern int wctob (wint_t __c) throw ();
5879 
5880 
5881 
5882 extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__));
5883 
5884 
5885 
5886 extern size_t mbrtowc (wchar_t *__restrict __pwc,
5887  const char *__restrict __s, size_t __n,
5888  mbstate_t *__restrict __p) throw ();
5889 
5890 
5891 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
5892  mbstate_t *__restrict __ps) throw ();
5893 
5894 
5895 extern size_t __mbrlen (const char *__restrict __s, size_t __n,
5896  mbstate_t *__restrict __ps) throw ();
5897 extern size_t mbrlen (const char *__restrict __s, size_t __n,
5898  mbstate_t *__restrict __ps) throw ();
5899 # 408 "/usr/include/wchar.h" 3 4
5900 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
5901  const char **__restrict __src, size_t __len,
5902  mbstate_t *__restrict __ps) throw ();
5903 
5904 
5905 
5906 extern size_t wcsrtombs (char *__restrict __dst,
5907  const wchar_t **__restrict __src, size_t __len,
5908  mbstate_t *__restrict __ps) throw ();
5909 
5910 
5911 
5912 
5913 
5914 
5915 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
5916  const char **__restrict __src, size_t __nmc,
5917  size_t __len, mbstate_t *__restrict __ps) throw ();
5918 
5919 
5920 
5921 extern size_t wcsnrtombs (char *__restrict __dst,
5922  const wchar_t **__restrict __src,
5923  size_t __nwc, size_t __len,
5924  mbstate_t *__restrict __ps) throw ();
5925 
5926 
5927 
5928 
5929 
5930 
5931 extern int wcwidth (wchar_t __c) throw ();
5932 
5933 
5934 
5935 extern int wcswidth (const wchar_t *__s, size_t __n) throw ();
5936 
5937 
5938 
5939 
5940 
5941 
5942 extern double wcstod (const wchar_t *__restrict __nptr,
5943  wchar_t **__restrict __endptr) throw ();
5944 
5945 
5946 
5947 
5948 
5949 extern float wcstof (const wchar_t *__restrict __nptr,
5950  wchar_t **__restrict __endptr) throw ();
5951 extern long double wcstold (const wchar_t *__restrict __nptr,
5952  wchar_t **__restrict __endptr) throw ();
5953 
5954 
5955 
5956 
5957 
5958 
5959 
5960 extern long int wcstol (const wchar_t *__restrict __nptr,
5961  wchar_t **__restrict __endptr, int __base) throw ();
5962 
5963 
5964 
5965 extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
5966  wchar_t **__restrict __endptr, int __base)
5967  throw ();
5968 
5969 
5970 
5971 
5972 
5973 
5974 __extension__
5975 extern long long int wcstoll (const wchar_t *__restrict __nptr,
5976  wchar_t **__restrict __endptr, int __base)
5977  throw ();
5978 
5979 
5980 
5981 __extension__
5982 extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
5983  wchar_t **__restrict __endptr,
5984  int __base) throw ();
5985 
5986 
5987 
5988 
5989 
5990 
5991 __extension__
5992 extern long long int wcstoq (const wchar_t *__restrict __nptr,
5993  wchar_t **__restrict __endptr, int __base)
5994  throw ();
5995 
5996 
5997 
5998 __extension__
5999 extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
6000  wchar_t **__restrict __endptr,
6001  int __base) throw ();
6002 # 530 "/usr/include/wchar.h" 3 4
6003 extern long int wcstol_l (const wchar_t *__restrict __nptr,
6004  wchar_t **__restrict __endptr, int __base,
6005  __locale_t __loc) throw ();
6006 
6007 extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
6008  wchar_t **__restrict __endptr,
6009  int __base, __locale_t __loc) throw ();
6010 
6011 __extension__
6012 extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
6013  wchar_t **__restrict __endptr,
6014  int __base, __locale_t __loc) throw ();
6015 
6016 __extension__
6017 extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
6018  wchar_t **__restrict __endptr,
6019  int __base, __locale_t __loc)
6020  throw ();
6021 
6022 extern double wcstod_l (const wchar_t *__restrict __nptr,
6023  wchar_t **__restrict __endptr, __locale_t __loc)
6024  throw ();
6025 
6026 extern float wcstof_l (const wchar_t *__restrict __nptr,
6027  wchar_t **__restrict __endptr, __locale_t __loc)
6028  throw ();
6029 
6030 extern long double wcstold_l (const wchar_t *__restrict __nptr,
6031  wchar_t **__restrict __endptr,
6032  __locale_t __loc) throw ();
6033 
6034 
6035 
6036 
6037 
6038 
6039 extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
6040  const wchar_t *__restrict __src) throw ();
6041 
6042 
6043 
6044 extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
6045  const wchar_t *__restrict __src, size_t __n)
6046  throw ();
6047 
6048 
6049 
6050 
6051 
6052 
6053 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
6054 
6055 
6056 
6057 
6058 
6059 
6060 extern int fwide (__FILE *__fp, int __mode) throw ();
6061 
6062 
6063 
6064 
6065 
6066 
6067 extern int fwprintf (__FILE *__restrict __stream,
6068  const wchar_t *__restrict __format, ...)
6069  ;
6070 
6071 
6072 
6073 
6074 extern int wprintf (const wchar_t *__restrict __format, ...)
6075  ;
6076 
6077 extern int swprintf (wchar_t *__restrict __s, size_t __n,
6078  const wchar_t *__restrict __format, ...)
6079  throw () ;
6080 
6081 
6082 
6083 
6084 
6085 extern int vfwprintf (__FILE *__restrict __s,
6086  const wchar_t *__restrict __format,
6087  __gnuc_va_list __arg)
6088  ;
6089 
6090 
6091 
6092 
6093 extern int vwprintf (const wchar_t *__restrict __format,
6094  __gnuc_va_list __arg)
6095  ;
6096 
6097 
6098 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
6099  const wchar_t *__restrict __format,
6100  __gnuc_va_list __arg)
6101  throw () ;
6102 
6103 
6104 
6105 
6106 
6107 
6108 extern int fwscanf (__FILE *__restrict __stream,
6109  const wchar_t *__restrict __format, ...)
6110  ;
6111 
6112 
6113 
6114 
6115 extern int wscanf (const wchar_t *__restrict __format, ...)
6116  ;
6117 
6118 extern int swscanf (const wchar_t *__restrict __s,
6119  const wchar_t *__restrict __format, ...)
6120  throw () ;
6121 # 689 "/usr/include/wchar.h" 3 4
6122 extern int vfwscanf (__FILE *__restrict __s,
6123  const wchar_t *__restrict __format,
6124  __gnuc_va_list __arg)
6125  ;
6126 
6127 
6128 
6129 
6130 extern int vwscanf (const wchar_t *__restrict __format,
6131  __gnuc_va_list __arg)
6132  ;
6133 
6134 extern int vswscanf (const wchar_t *__restrict __s,
6135  const wchar_t *__restrict __format,
6136  __gnuc_va_list __arg)
6137  throw () ;
6138 # 745 "/usr/include/wchar.h" 3 4
6139 extern wint_t fgetwc (__FILE *__stream);
6140 extern wint_t getwc (__FILE *__stream);
6141 
6142 
6143 
6144 
6145 
6146 extern wint_t getwchar (void);
6147 
6148 
6149 
6150 
6151 
6152 
6153 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
6154 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
6155 
6156 
6157 
6158 
6159 
6160 extern wint_t putwchar (wchar_t __wc);
6161 
6162 
6163 
6164 
6165 
6166 
6167 
6168 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
6169  __FILE *__restrict __stream);
6170 
6171 
6172 
6173 
6174 
6175 extern int fputws (const wchar_t *__restrict __ws,
6176  __FILE *__restrict __stream);
6177 
6178 
6179 
6180 
6181 
6182 
6183 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
6184 # 801 "/usr/include/wchar.h" 3 4
6185 extern wint_t getwc_unlocked (__FILE *__stream);
6186 extern wint_t getwchar_unlocked (void);
6187 
6188 
6189 
6190 
6191 
6192 
6193 
6194 extern wint_t fgetwc_unlocked (__FILE *__stream);
6195 
6196 
6197 
6198 
6199 
6200 
6201 
6202 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
6203 # 827 "/usr/include/wchar.h" 3 4
6204 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
6205 extern wint_t putwchar_unlocked (wchar_t __wc);
6206 # 837 "/usr/include/wchar.h" 3 4
6207 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
6208  __FILE *__restrict __stream);
6209 
6210 
6211 
6212 
6213 
6214 
6215 
6216 extern int fputws_unlocked (const wchar_t *__restrict __ws,
6217  __FILE *__restrict __stream);
6218 
6219 
6220 
6221 
6222 
6223 
6224 
6225 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
6226  const wchar_t *__restrict __format,
6227  const struct tm *__restrict __tp) throw ();
6228 
6229 
6230 
6231 
6232 
6233 
6234 
6235 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
6236  const wchar_t *__restrict __format,
6237  const struct tm *__restrict __tp,
6238  __locale_t __loc) throw ();
6239 # 891 "/usr/include/wchar.h" 3 4
6240 }
6241 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
6242 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6243 namespace std
6244 {
6245  using ::mbstate_t;
6246 }
6247 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6248 namespace std __attribute__ ((__visibility__ ("default")))
6249 {
6250 
6251 
6252  using ::wint_t;
6253 
6254  using ::btowc;
6255  using ::fgetwc;
6256  using ::fgetws;
6257  using ::fputwc;
6258  using ::fputws;
6259  using ::fwide;
6260  using ::fwprintf;
6261  using ::fwscanf;
6262  using ::getwc;
6263  using ::getwchar;
6264  using ::mbrlen;
6265  using ::mbrtowc;
6266  using ::mbsinit;
6267  using ::mbsrtowcs;
6268  using ::putwc;
6269  using ::putwchar;
6270 
6271  using ::swprintf;
6272 
6273  using ::swscanf;
6274  using ::ungetwc;
6275  using ::vfwprintf;
6276 
6277  using ::vfwscanf;
6278 
6279 
6280  using ::vswprintf;
6281 
6282 
6283  using ::vswscanf;
6284 
6285  using ::vwprintf;
6286 
6287  using ::vwscanf;
6288 
6289  using ::wcrtomb;
6290  using ::wcscat;
6291  using ::wcscmp;
6292  using ::wcscoll;
6293  using ::wcscpy;
6294  using ::wcscspn;
6295  using ::wcsftime;
6296  using ::wcslen;
6297  using ::wcsncat;
6298  using ::wcsncmp;
6299  using ::wcsncpy;
6300  using ::wcsrtombs;
6301  using ::wcsspn;
6302  using ::wcstod;
6303 
6304  using ::wcstof;
6305 
6306  using ::wcstok;
6307  using ::wcstol;
6308  using ::wcstoul;
6309  using ::wcsxfrm;
6310  using ::wctob;
6311  using ::wmemcmp;
6312  using ::wmemcpy;
6313  using ::wmemmove;
6314  using ::wmemset;
6315  using ::wprintf;
6316  using ::wscanf;
6317  using ::wcschr;
6318  using ::wcspbrk;
6319  using ::wcsrchr;
6320  using ::wcsstr;
6321  using ::wmemchr;
6322 
6323 
6324  inline wchar_t*
6325  wcschr(wchar_t* __p, wchar_t __c)
6326  { return wcschr(const_cast<const wchar_t*>(__p), __c); }
6327 
6328  inline wchar_t*
6329  wcspbrk(wchar_t* __s1, const wchar_t* __s2)
6330  { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
6331 
6332  inline wchar_t*
6333  wcsrchr(wchar_t* __p, wchar_t __c)
6334  { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
6335 
6336  inline wchar_t*
6337  wcsstr(wchar_t* __s1, const wchar_t* __s2)
6338  { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
6339 
6340  inline wchar_t*
6341  wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
6342  { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
6343 
6344 
6345 
6346 }
6347 
6348 
6349 
6350 
6351 
6352 
6353 
6354 namespace __gnu_cxx
6355 {
6356 
6357 
6358 
6359 
6360 
6361  using ::wcstold;
6362 # 257 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6363  using ::wcstoll;
6364  using ::wcstoull;
6365 
6366 }
6367 
6368 namespace std
6369 {
6370  using ::__gnu_cxx::wcstold;
6371  using ::__gnu_cxx::wcstoll;
6372  using ::__gnu_cxx::wcstoull;
6373 }
6374 # 277 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6375 namespace std
6376 {
6377 
6378  using std::wcstof;
6379 
6380 
6381  using std::vfwscanf;
6382 
6383 
6384  using std::vswscanf;
6385 
6386 
6387  using std::vwscanf;
6388 
6389 
6390 
6391  using std::wcstold;
6392  using std::wcstoll;
6393  using std::wcstoull;
6394 
6395 }
6396 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 2 3
6397 # 68 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6398 namespace std __attribute__ ((__visibility__ ("default")))
6399 {
6400 # 88 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6401  typedef long streamoff;
6402 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6403  typedef ptrdiff_t streamsize;
6404 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6405  template<typename _StateT>
6406  class fpos
6407  {
6408  private:
6409  streamoff _M_off;
6410  _StateT _M_state;
6411 
6412  public:
6413 
6414 
6415 
6416 
6417  fpos()
6418  : _M_off(0), _M_state() { }
6419 # 133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/postypes.h" 3
6420  fpos(streamoff __off)
6421  : _M_off(__off), _M_state() { }
6422 
6423 
6424  operator streamoff() const { return _M_off; }
6425 
6426 
6427  void
6428  state(_StateT __st)
6429  { _M_state = __st; }
6430 
6431 
6432  _StateT
6433  state() const
6434  { return _M_state; }
6435 
6436 
6437 
6438 
6439 
6440  fpos&
6441  operator+=(streamoff __off)
6442  {
6443  _M_off += __off;
6444  return *this;
6445  }
6446 
6447 
6448 
6449 
6450 
6451  fpos&
6452  operator-=(streamoff __off)
6453  {
6454  _M_off -= __off;
6455  return *this;
6456  }
6457 
6458 
6459 
6460 
6461 
6462 
6463 
6464  fpos
6465  operator+(streamoff __off) const
6466  {
6467  fpos __pos(*this);
6468  __pos += __off;
6469  return __pos;
6470  }
6471 
6472 
6473 
6474 
6475 
6476 
6477 
6478  fpos
6479  operator-(streamoff __off) const
6480  {
6481  fpos __pos(*this);
6482  __pos -= __off;
6483  return __pos;
6484  }
6485 
6486 
6487 
6488 
6489 
6490 
6491  streamoff
6492  operator-(const fpos& __other) const
6493  { return _M_off - __other._M_off; }
6494  };
6495 
6496 
6497 
6498 
6499 
6500 
6501  template<typename _StateT>
6502  inline bool
6503  operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
6504  { return streamoff(__lhs) == streamoff(__rhs); }
6505 
6506  template<typename _StateT>
6507  inline bool
6508  operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
6509  { return streamoff(__lhs) != streamoff(__rhs); }
6510 
6511 
6512 
6513 
6514 
6515  typedef fpos<mbstate_t> streampos;
6516 
6517  typedef fpos<mbstate_t> wstreampos;
6518 
6519 
6520 
6521  typedef fpos<mbstate_t> u16streampos;
6522 
6523  typedef fpos<mbstate_t> u32streampos;
6524 
6525 
6526 
6527 }
6528 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
6529 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
6530 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
6531 
6532 
6533 
6534 
6535 # 1 "/usr/include/wchar.h" 1 3 4
6536 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
6537 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 2 3
6538 
6539 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
6540 {
6541 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6542  template<typename _CharT>
6543  struct _Char_types
6544  {
6545  typedef unsigned long int_type;
6546  typedef std::streampos pos_type;
6547  typedef std::streamoff off_type;
6548  typedef std::mbstate_t state_type;
6549  };
6550 # 82 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6551  template<typename _CharT>
6552  struct char_traits
6553  {
6554  typedef _CharT char_type;
6555  typedef typename _Char_types<_CharT>::int_type int_type;
6556  typedef typename _Char_types<_CharT>::pos_type pos_type;
6557  typedef typename _Char_types<_CharT>::off_type off_type;
6558  typedef typename _Char_types<_CharT>::state_type state_type;
6559 
6560  static void
6561  assign(char_type& __c1, const char_type& __c2)
6562  { __c1 = __c2; }
6563 
6564  static constexpr bool
6565  eq(const char_type& __c1, const char_type& __c2)
6566  { return __c1 == __c2; }
6567 
6568  static constexpr bool
6569  lt(const char_type& __c1, const char_type& __c2)
6570  { return __c1 < __c2; }
6571 
6572  static int
6573  compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
6574 
6575  static std::size_t
6576  length(const char_type* __s);
6577 
6578  static const char_type*
6579  find(const char_type* __s, std::size_t __n, const char_type& __a);
6580 
6581  static char_type*
6582  move(char_type* __s1, const char_type* __s2, std::size_t __n);
6583 
6584  static char_type*
6585  copy(char_type* __s1, const char_type* __s2, std::size_t __n);
6586 
6587  static char_type*
6588  assign(char_type* __s, std::size_t __n, char_type __a);
6589 
6590  static constexpr char_type
6591  to_char_type(const int_type& __c)
6592  { return static_cast<char_type>(__c); }
6593 
6594  static constexpr int_type
6595  to_int_type(const char_type& __c)
6596  { return static_cast<int_type>(__c); }
6597 
6598  static constexpr bool
6599  eq_int_type(const int_type& __c1, const int_type& __c2)
6600  { return __c1 == __c2; }
6601 
6602  static constexpr int_type
6603  eof()
6604  { return static_cast<int_type>(-1); }
6605 
6606  static constexpr int_type
6607  not_eof(const int_type& __c)
6608  { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
6609  };
6610 
6611  template<typename _CharT>
6612  int
6613  char_traits<_CharT>::
6614  compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
6615  {
6616  for (std::size_t __i = 0; __i < __n; ++__i)
6617  if (lt(__s1[__i], __s2[__i]))
6618  return -1;
6619  else if (lt(__s2[__i], __s1[__i]))
6620  return 1;
6621  return 0;
6622  }
6623 
6624  template<typename _CharT>
6625  std::size_t
6626  char_traits<_CharT>::
6627  length(const char_type* __p)
6628  {
6629  std::size_t __i = 0;
6630  while (!eq(__p[__i], char_type()))
6631  ++__i;
6632  return __i;
6633  }
6634 
6635  template<typename _CharT>
6636  const typename char_traits<_CharT>::char_type*
6637  char_traits<_CharT>::
6638  find(const char_type* __s, std::size_t __n, const char_type& __a)
6639  {
6640  for (std::size_t __i = 0; __i < __n; ++__i)
6641  if (eq(__s[__i], __a))
6642  return __s + __i;
6643  return 0;
6644  }
6645 
6646  template<typename _CharT>
6647  typename char_traits<_CharT>::char_type*
6648  char_traits<_CharT>::
6649  move(char_type* __s1, const char_type* __s2, std::size_t __n)
6650  {
6651  return static_cast<_CharT*>(__builtin_memmove(__s1, __s2,
6652  __n * sizeof(char_type)));
6653  }
6654 
6655  template<typename _CharT>
6656  typename char_traits<_CharT>::char_type*
6657  char_traits<_CharT>::
6658  copy(char_type* __s1, const char_type* __s2, std::size_t __n)
6659  {
6660 
6661  std::copy(__s2, __s2 + __n, __s1);
6662  return __s1;
6663  }
6664 
6665  template<typename _CharT>
6666  typename char_traits<_CharT>::char_type*
6667  char_traits<_CharT>::
6668  assign(char_type* __s, std::size_t __n, char_type __a)
6669  {
6670 
6671  std::fill_n(__s, __n, __a);
6672  return __s;
6673  }
6674 
6675 
6676 }
6677 
6678 namespace std __attribute__ ((__visibility__ ("default")))
6679 {
6680 # 226 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/char_traits.h" 3
6681  template<class _CharT>
6682  struct char_traits : public __gnu_cxx::char_traits<_CharT>
6683  { };
6684 
6685 
6686 
6687  template<>
6688  struct char_traits<char>
6689  {
6690  typedef char char_type;
6691  typedef int int_type;
6692  typedef streampos pos_type;
6693  typedef streamoff off_type;
6694  typedef mbstate_t state_type;
6695 
6696  static void
6697  assign(char_type& __c1, const char_type& __c2) noexcept
6698  { __c1 = __c2; }
6699 
6700  static constexpr bool
6701  eq(const char_type& __c1, const char_type& __c2) noexcept
6702  { return __c1 == __c2; }
6703 
6704  static constexpr bool
6705  lt(const char_type& __c1, const char_type& __c2) noexcept
6706  {
6707 
6708  return (static_cast<unsigned char>(__c1)
6709  < static_cast<unsigned char>(__c2));
6710  }
6711 
6712  static int
6713  compare(const char_type* __s1, const char_type* __s2, size_t __n)
6714  { return __builtin_memcmp(__s1, __s2, __n); }
6715 
6716  static size_t
6717  length(const char_type* __s)
6718  { return __builtin_strlen(__s); }
6719 
6720  static const char_type*
6721  find(const char_type* __s, size_t __n, const char_type& __a)
6722  { return static_cast<const char_type*>(__builtin_memchr(__s, __a, __n)); }
6723 
6724  static char_type*
6725  move(char_type* __s1, const char_type* __s2, size_t __n)
6726  { return static_cast<char_type*>(__builtin_memmove(__s1, __s2, __n)); }
6727 
6728  static char_type*
6729  copy(char_type* __s1, const char_type* __s2, size_t __n)
6730  { return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n)); }
6731 
6732  static char_type*
6733  assign(char_type* __s, size_t __n, char_type __a)
6734  { return static_cast<char_type*>(__builtin_memset(__s, __a, __n)); }
6735 
6736  static constexpr char_type
6737  to_char_type(const int_type& __c) noexcept
6738  { return static_cast<char_type>(__c); }
6739 
6740 
6741 
6742  static constexpr int_type
6743  to_int_type(const char_type& __c) noexcept
6744  { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
6745 
6746  static constexpr bool
6747  eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
6748  { return __c1 == __c2; }
6749 
6750  static constexpr int_type
6751  eof() noexcept
6752  { return static_cast<int_type>(-1); }
6753 
6754  static constexpr int_type
6755  not_eof(const int_type& __c) noexcept
6756  { return (__c == eof()) ? 0 : __c; }
6757  };
6758 
6759 
6760 
6761 
6762  template<>
6763  struct char_traits<wchar_t>
6764  {
6765  typedef wchar_t char_type;
6766  typedef wint_t int_type;
6767  typedef streamoff off_type;
6768  typedef wstreampos pos_type;
6769  typedef mbstate_t state_type;
6770 
6771  static void
6772  assign(char_type& __c1, const char_type& __c2) noexcept
6773  { __c1 = __c2; }
6774 
6775  static constexpr bool
6776  eq(const char_type& __c1, const char_type& __c2) noexcept
6777  { return __c1 == __c2; }
6778 
6779  static constexpr bool
6780  lt(const char_type& __c1, const char_type& __c2) noexcept
6781  { return __c1 < __c2; }
6782 
6783  static int
6784  compare(const char_type* __s1, const char_type* __s2, size_t __n)
6785  { return wmemcmp(__s1, __s2, __n); }
6786 
6787  static size_t
6788  length(const char_type* __s)
6789  { return wcslen(__s); }
6790 
6791  static const char_type*
6792  find(const char_type* __s, size_t __n, const char_type& __a)
6793  { return wmemchr(__s, __a, __n); }
6794 
6795  static char_type*
6796  move(char_type* __s1, const char_type* __s2, size_t __n)
6797  { return wmemmove(__s1, __s2, __n); }
6798 
6799  static char_type*
6800  copy(char_type* __s1, const char_type* __s2, size_t __n)
6801  { return wmemcpy(__s1, __s2, __n); }
6802 
6803  static char_type*
6804  assign(char_type* __s, size_t __n, char_type __a)
6805  { return wmemset(__s, __a, __n); }
6806 
6807  static constexpr char_type
6808  to_char_type(const int_type& __c) noexcept
6809  { return char_type(__c); }
6810 
6811  static constexpr int_type
6812  to_int_type(const char_type& __c) noexcept
6813  { return int_type(__c); }
6814 
6815  static constexpr bool
6816  eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
6817  { return __c1 == __c2; }
6818 
6819  static constexpr int_type
6820  eof() noexcept
6821  { return static_cast<int_type>((0xffffffffu)); }
6822 
6823  static constexpr int_type
6824  not_eof(const int_type& __c) noexcept
6825  { return eq_int_type(__c, eof()) ? 0 : __c; }
6826  };
6827 
6828 
6829 
6830 }
6831 
6832 
6833 
6834 
6835 
6836 
6837 namespace std __attribute__ ((__visibility__ ("default")))
6838 {
6839 
6840 
6841  template<>
6842  struct char_traits<char16_t>
6843  {
6844  typedef char16_t char_type;
6845  typedef uint_least16_t int_type;
6846  typedef streamoff off_type;
6847  typedef u16streampos pos_type;
6848  typedef mbstate_t state_type;
6849 
6850  static void
6851  assign(char_type& __c1, const char_type& __c2) noexcept
6852  { __c1 = __c2; }
6853 
6854  static constexpr bool
6855  eq(const char_type& __c1, const char_type& __c2) noexcept
6856  { return __c1 == __c2; }
6857 
6858  static constexpr bool
6859  lt(const char_type& __c1, const char_type& __c2) noexcept
6860  { return __c1 < __c2; }
6861 
6862  static int
6863  compare(const char_type* __s1, const char_type* __s2, size_t __n)
6864  {
6865  for (size_t __i = 0; __i < __n; ++__i)
6866  if (lt(__s1[__i], __s2[__i]))
6867  return -1;
6868  else if (lt(__s2[__i], __s1[__i]))
6869  return 1;
6870  return 0;
6871  }
6872 
6873  static size_t
6874  length(const char_type* __s)
6875  {
6876  size_t __i = 0;
6877  while (!eq(__s[__i], char_type()))
6878  ++__i;
6879  return __i;
6880  }
6881 
6882  static const char_type*
6883  find(const char_type* __s, size_t __n, const char_type& __a)
6884  {
6885  for (size_t __i = 0; __i < __n; ++__i)
6886  if (eq(__s[__i], __a))
6887  return __s + __i;
6888  return 0;
6889  }
6890 
6891  static char_type*
6892  move(char_type* __s1, const char_type* __s2, size_t __n)
6893  {
6894  return (static_cast<char_type*>
6895  (__builtin_memmove(__s1, __s2, __n * sizeof(char_type))));
6896  }
6897 
6898  static char_type*
6899  copy(char_type* __s1, const char_type* __s2, size_t __n)
6900  {
6901  return (static_cast<char_type*>
6902  (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type))));
6903  }
6904 
6905  static char_type*
6906  assign(char_type* __s, size_t __n, char_type __a)
6907  {
6908  for (size_t __i = 0; __i < __n; ++__i)
6909  assign(__s[__i], __a);
6910  return __s;
6911  }
6912 
6913  static constexpr char_type
6914  to_char_type(const int_type& __c) noexcept
6915  { return char_type(__c); }
6916 
6917  static constexpr int_type
6918  to_int_type(const char_type& __c) noexcept
6919  { return int_type(__c); }
6920 
6921  static constexpr bool
6922  eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
6923  { return __c1 == __c2; }
6924 
6925  static constexpr int_type
6926  eof() noexcept
6927  { return static_cast<int_type>(-1); }
6928 
6929  static constexpr int_type
6930  not_eof(const int_type& __c) noexcept
6931  { return eq_int_type(__c, eof()) ? 0 : __c; }
6932  };
6933 
6934  template<>
6935  struct char_traits<char32_t>
6936  {
6937  typedef char32_t char_type;
6938  typedef uint_least32_t int_type;
6939  typedef streamoff off_type;
6940  typedef u32streampos pos_type;
6941  typedef mbstate_t state_type;
6942 
6943  static void
6944  assign(char_type& __c1, const char_type& __c2) noexcept
6945  { __c1 = __c2; }
6946 
6947  static constexpr bool
6948  eq(const char_type& __c1, const char_type& __c2) noexcept
6949  { return __c1 == __c2; }
6950 
6951  static constexpr bool
6952  lt(const char_type& __c1, const char_type& __c2) noexcept
6953  { return __c1 < __c2; }
6954 
6955  static int
6956  compare(const char_type* __s1, const char_type* __s2, size_t __n)
6957  {
6958  for (size_t __i = 0; __i < __n; ++__i)
6959  if (lt(__s1[__i], __s2[__i]))
6960  return -1;
6961  else if (lt(__s2[__i], __s1[__i]))
6962  return 1;
6963  return 0;
6964  }
6965 
6966  static size_t
6967  length(const char_type* __s)
6968  {
6969  size_t __i = 0;
6970  while (!eq(__s[__i], char_type()))
6971  ++__i;
6972  return __i;
6973  }
6974 
6975  static const char_type*
6976  find(const char_type* __s, size_t __n, const char_type& __a)
6977  {
6978  for (size_t __i = 0; __i < __n; ++__i)
6979  if (eq(__s[__i], __a))
6980  return __s + __i;
6981  return 0;
6982  }
6983 
6984  static char_type*
6985  move(char_type* __s1, const char_type* __s2, size_t __n)
6986  {
6987  return (static_cast<char_type*>
6988  (__builtin_memmove(__s1, __s2, __n * sizeof(char_type))));
6989  }
6990 
6991  static char_type*
6992  copy(char_type* __s1, const char_type* __s2, size_t __n)
6993  {
6994  return (static_cast<char_type*>
6995  (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type))));
6996  }
6997 
6998  static char_type*
6999  assign(char_type* __s, size_t __n, char_type __a)
7000  {
7001  for (size_t __i = 0; __i < __n; ++__i)
7002  assign(__s[__i], __a);
7003  return __s;
7004  }
7005 
7006  static constexpr char_type
7007  to_char_type(const int_type& __c) noexcept
7008  { return char_type(__c); }
7009 
7010  static constexpr int_type
7011  to_int_type(const char_type& __c) noexcept
7012  { return int_type(__c); }
7013 
7014  static constexpr bool
7015  eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
7016  { return __c1 == __c2; }
7017 
7018  static constexpr int_type
7019  eof() noexcept
7020  { return static_cast<int_type>(-1); }
7021 
7022  static constexpr int_type
7023  not_eof(const int_type& __c) noexcept
7024  { return eq_int_type(__c, eof()) ? 0 : __c; }
7025  };
7026 
7027 
7028 }
7029 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
7030 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 1 3
7031 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7032 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 1 3
7033 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 3
7034 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 1 3
7035 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7036 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 1 3
7037 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7038 
7039 
7040 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 1 3
7041 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7042 
7043 #pragma GCC visibility push(default)
7044 
7045 
7046 
7047 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/atomic_lockfree_defines.h" 1 3
7048 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/atomic_lockfree_defines.h" 3
7049 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7050 
7051 extern "C++" {
7052 
7053 namespace std
7054 {
7055 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7056  class exception
7057  {
7058  public:
7059  exception() noexcept { }
7060  virtual ~exception() noexcept;
7061 
7062 
7063 
7064  virtual const char* what() const noexcept;
7065  };
7066 
7067 
7068 
7069  class bad_exception : public exception
7070  {
7071  public:
7072  bad_exception() noexcept { }
7073 
7074 
7075 
7076  virtual ~bad_exception() noexcept;
7077 
7078 
7079  virtual const char* what() const noexcept;
7080  };
7081 
7082 
7083  typedef void (*terminate_handler) ();
7084 
7085 
7086  typedef void (*unexpected_handler) ();
7087 
7088 
7089  terminate_handler set_terminate(terminate_handler) noexcept;
7090 
7091 
7092 
7093  terminate_handler get_terminate() noexcept;
7094 
7095 
7096 
7097 
7098  void terminate() noexcept __attribute__ ((__noreturn__));
7099 
7100 
7101  unexpected_handler set_unexpected(unexpected_handler) noexcept;
7102 
7103 
7104 
7105  unexpected_handler get_unexpected() noexcept;
7106 
7107 
7108 
7109 
7110  void unexpected() __attribute__ ((__noreturn__));
7111 # 127 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7112  bool uncaught_exception() noexcept __attribute__ ((__pure__));
7113 
7114 
7115 }
7116 
7117 namespace __gnu_cxx
7118 {
7119 # 152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 3
7120  void __verbose_terminate_handler();
7121 
7122 
7123 }
7124 
7125 }
7126 
7127 #pragma GCC visibility pop
7128 
7129 
7130 
7131 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 1 3
7132 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7133 #pragma GCC visibility push(default)
7134 
7135 
7136 
7137 
7138 
7139 
7140 
7141 
7142 extern "C++" {
7143 
7144 namespace std
7145 {
7146  class type_info;
7147 
7148 
7149 
7150 
7151 
7152  namespace __exception_ptr
7153  {
7154  class exception_ptr;
7155  }
7156 
7157  using __exception_ptr::exception_ptr;
7158 
7159 
7160 
7161 
7162 
7163  exception_ptr current_exception() noexcept;
7164 
7165 
7166  void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
7167 
7168  namespace __exception_ptr
7169  {
7170 
7171 
7172 
7173 
7174  class exception_ptr
7175  {
7176  void* _M_exception_object;
7177 
7178  explicit exception_ptr(void* __e) noexcept;
7179 
7180  void _M_addref() noexcept;
7181  void _M_release() noexcept;
7182 
7183  void *_M_get() const noexcept __attribute__ ((__pure__));
7184 
7185  friend exception_ptr std::current_exception() noexcept;
7186  friend void std::rethrow_exception(exception_ptr);
7187 
7188  public:
7189  exception_ptr() noexcept;
7190 
7191  exception_ptr(const exception_ptr&) noexcept;
7192 
7193 
7194  exception_ptr(nullptr_t) noexcept
7195  : _M_exception_object(0)
7196  { }
7197 
7198  exception_ptr(exception_ptr&& __o) noexcept
7199  : _M_exception_object(__o._M_exception_object)
7200  { __o._M_exception_object = 0; }
7201 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7202  exception_ptr&
7203  operator=(const exception_ptr&) noexcept;
7204 
7205 
7206  exception_ptr&
7207  operator=(exception_ptr&& __o) noexcept
7208  {
7209  exception_ptr(static_cast<exception_ptr&&>(__o)).swap(*this);
7210  return *this;
7211  }
7212 
7213 
7214  ~exception_ptr() noexcept;
7215 
7216  void
7217  swap(exception_ptr&) noexcept;
7218 # 138 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/exception_ptr.h" 3
7219  explicit operator bool() const
7220  { return _M_exception_object; }
7221 
7222 
7223  friend bool
7224  operator==(const exception_ptr&, const exception_ptr&)
7225  noexcept __attribute__ ((__pure__));
7226 
7227  const class std::type_info*
7228  __cxa_exception_type() const noexcept
7229  __attribute__ ((__pure__));
7230  };
7231 
7232  bool
7233  operator==(const exception_ptr&, const exception_ptr&)
7234  noexcept __attribute__ ((__pure__));
7235 
7236  bool
7237  operator!=(const exception_ptr&, const exception_ptr&)
7238  noexcept __attribute__ ((__pure__));
7239 
7240  inline void
7241  swap(exception_ptr& __lhs, exception_ptr& __rhs)
7242  { __lhs.swap(__rhs); }
7243 
7244  }
7245 
7246 
7247 
7248  template<typename _Ex>
7249  exception_ptr
7250  make_exception_ptr(_Ex __ex) noexcept
7251  {
7252  try
7253  {
7254 
7255  throw __ex;
7256 
7257  }
7258  catch(...)
7259  {
7260  return current_exception();
7261  }
7262  }
7263 
7264 
7265 
7266 
7267 
7268  template<typename _Ex>
7269  exception_ptr
7270  copy_exception(_Ex __ex) noexcept __attribute__ ((__deprecated__));
7271 
7272  template<typename _Ex>
7273  exception_ptr
7274  copy_exception(_Ex __ex) noexcept
7275  { return std::make_exception_ptr<_Ex>(__ex); }
7276 
7277 
7278 }
7279 
7280 }
7281 
7282 #pragma GCC visibility pop
7283 # 163 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7284 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 1 3
7285 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 3
7286 #pragma GCC visibility push(default)
7287 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/nested_exception.h" 3
7288 extern "C++" {
7289 
7290 namespace std
7291 {
7292 
7293 
7294 
7295 
7296 
7297 
7298  class nested_exception
7299  {
7300  exception_ptr _M_ptr;
7301 
7302  public:
7303  nested_exception() noexcept : _M_ptr(current_exception()) { }
7304 
7305  nested_exception(const nested_exception&) = default;
7306 
7307  nested_exception& operator=(const nested_exception&) = default;
7308 
7309  virtual ~nested_exception() noexcept;
7310 
7311  void
7312  rethrow_nested() const __attribute__ ((__noreturn__))
7313  { rethrow_exception(_M_ptr); }
7314 
7315  exception_ptr
7316  nested_ptr() const
7317  { return _M_ptr; }
7318  };
7319 
7320  template<typename _Except>
7321  struct _Nested_exception : public _Except, public nested_exception
7322  {
7323  explicit _Nested_exception(_Except&& __ex)
7324  : _Except(static_cast<_Except&&>(__ex))
7325  { }
7326  };
7327 
7328  template<typename _Ex>
7329  struct __get_nested_helper
7330  {
7331  static const nested_exception*
7332  _S_get(const _Ex& __ex)
7333  { return dynamic_cast<const nested_exception*>(&__ex); }
7334  };
7335 
7336  template<typename _Ex>
7337  struct __get_nested_helper<_Ex*>
7338  {
7339  static const nested_exception*
7340  _S_get(const _Ex* __ex)
7341  { return dynamic_cast<const nested_exception*>(__ex); }
7342  };
7343 
7344  template<typename _Ex>
7345  inline const nested_exception*
7346  __get_nested_exception(const _Ex& __ex)
7347  { return __get_nested_helper<_Ex>::_S_get(__ex); }
7348 
7349  template<typename _Ex>
7350  void
7351  __throw_with_nested(_Ex&&, const nested_exception* = 0)
7352  __attribute__ ((__noreturn__));
7353 
7354  template<typename _Ex>
7355  void
7356  __throw_with_nested(_Ex&&, ...) __attribute__ ((__noreturn__));
7357 
7358 
7359 
7360 
7361  template<typename _Ex>
7362  inline void
7363  __throw_with_nested(_Ex&& __ex, const nested_exception*)
7364  { throw __ex; }
7365 
7366  template<typename _Ex>
7367  inline void
7368  __throw_with_nested(_Ex&& __ex, ...)
7369  { throw _Nested_exception<_Ex>(static_cast<_Ex&&>(__ex)); }
7370 
7371  template<typename _Ex>
7372  void
7373  throw_with_nested(_Ex __ex) __attribute__ ((__noreturn__));
7374 
7375 
7376 
7377  template<typename _Ex>
7378  inline void
7379  throw_with_nested(_Ex __ex)
7380  {
7381  if (__get_nested_exception(__ex))
7382  throw __ex;
7383  __throw_with_nested(static_cast<_Ex&&>(__ex), &__ex);
7384  }
7385 
7386 
7387  template<typename _Ex>
7388  inline void
7389  rethrow_if_nested(const _Ex& __ex)
7390  {
7391  if (const nested_exception* __nested = __get_nested_exception(__ex))
7392  __nested->rethrow_nested();
7393  }
7394 
7395 
7396  inline void
7397  rethrow_if_nested(const nested_exception& __ex)
7398  { __ex.rethrow_nested(); }
7399 
7400 
7401 }
7402 
7403 }
7404 
7405 
7406 
7407 #pragma GCC visibility pop
7408 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/exception" 2 3
7409 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 2 3
7410 
7411 #pragma GCC visibility push(default)
7412 
7413 extern "C++" {
7414 
7415 namespace std
7416 {
7417 
7418 
7419 
7420 
7421 
7422 
7423  class bad_alloc : public exception
7424  {
7425  public:
7426  bad_alloc() throw() { }
7427 
7428 
7429 
7430  virtual ~bad_alloc() throw();
7431 
7432 
7433  virtual const char* what() const throw();
7434  };
7435 
7436 
7437  class bad_array_new_length : public bad_alloc
7438  {
7439  public:
7440  bad_array_new_length() throw() { };
7441 
7442 
7443 
7444  virtual ~bad_array_new_length() throw();
7445 
7446 
7447  virtual const char* what() const throw();
7448  };
7449 # 99 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7450  struct nothrow_t { };
7451 
7452  extern const nothrow_t nothrow;
7453 
7454 
7455 
7456  typedef void (*new_handler)();
7457 
7458 
7459 
7460  new_handler set_new_handler(new_handler) throw();
7461 
7462 
7463 
7464  new_handler get_new_handler() noexcept;
7465 
7466 }
7467 # 128 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/new" 3
7468 void* operator new(std::size_t)
7469  __attribute__((__externally_visible__));
7470 void* operator new[](std::size_t)
7471  __attribute__((__externally_visible__));
7472 void operator delete(void*) noexcept
7473  __attribute__((__externally_visible__));
7474 void operator delete[](void*) noexcept
7475  __attribute__((__externally_visible__));
7476 void* operator new(std::size_t, const std::nothrow_t&) noexcept
7477  __attribute__((__externally_visible__));
7478 void* operator new[](std::size_t, const std::nothrow_t&) noexcept
7479  __attribute__((__externally_visible__));
7480 void operator delete(void*, const std::nothrow_t&) noexcept
7481  __attribute__((__externally_visible__));
7482 void operator delete[](void*, const std::nothrow_t&) noexcept
7483  __attribute__((__externally_visible__));
7484 
7485 
7486 inline void* operator new(std::size_t, void* __p) noexcept
7487 { return __p; }
7488 inline void* operator new[](std::size_t, void* __p) noexcept
7489 { return __p; }
7490 
7491 
7492 inline void operator delete (void*, void*) noexcept { }
7493 inline void operator delete[](void*, void*) noexcept { }
7494 
7495 }
7496 
7497 #pragma GCC visibility pop
7498 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 2 3
7499 
7500 
7501 
7502 
7503 
7504 
7505 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
7506 {
7507 
7508 
7509  using std::size_t;
7510  using std::ptrdiff_t;
7511 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7512  template<typename _Tp>
7513  class new_allocator
7514  {
7515  public:
7516  typedef size_t size_type;
7517  typedef ptrdiff_t difference_type;
7518  typedef _Tp* pointer;
7519  typedef const _Tp* const_pointer;
7520  typedef _Tp& reference;
7521  typedef const _Tp& const_reference;
7522  typedef _Tp value_type;
7523 
7524  template<typename _Tp1>
7525  struct rebind
7526  { typedef new_allocator<_Tp1> other; };
7527 
7528 
7529 
7530 
7531  typedef std::true_type propagate_on_container_move_assignment;
7532 
7533 
7534  new_allocator() noexcept { }
7535 
7536  new_allocator(const new_allocator&) noexcept { }
7537 
7538  template<typename _Tp1>
7539  new_allocator(const new_allocator<_Tp1>&) noexcept { }
7540 
7541  ~new_allocator() noexcept { }
7542 
7543  pointer
7544  address(reference __x) const noexcept
7545  { return std::__addressof(__x); }
7546 
7547  const_pointer
7548  address(const_reference __x) const noexcept
7549  { return std::__addressof(__x); }
7550 
7551 
7552 
7553  pointer
7554  allocate(size_type __n, const void* = 0)
7555  {
7556  if (__n > this->max_size())
7557  std::__throw_bad_alloc();
7558 
7559  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
7560  }
7561 
7562 
7563  void
7564  deallocate(pointer __p, size_type)
7565  { ::operator delete(__p); }
7566 
7567  size_type
7568  max_size() const noexcept
7569  { return size_t(-1) / sizeof(_Tp); }
7570 
7571 
7572  template<typename _Up, typename... _Args>
7573  void
7574  construct(_Up* __p, _Args&&... __args)
7575  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
7576 
7577  template<typename _Up>
7578  void
7579  destroy(_Up* __p) { __p->~_Up(); }
7580 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/new_allocator.h" 3
7581  };
7582 
7583  template<typename _Tp>
7584  inline bool
7585  operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
7586  { return true; }
7587 
7588  template<typename _Tp>
7589  inline bool
7590  operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
7591  { return false; }
7592 
7593 
7594 }
7595 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 2 3
7596 
7597 
7598 namespace std
7599 {
7600 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++allocator.h" 3
7601  template<typename _Tp>
7602  using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
7603 }
7604 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 2 3
7605 
7606 
7607 
7608 
7609 
7610 namespace std __attribute__ ((__visibility__ ("default")))
7611 {
7612 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7613  template<>
7614  class allocator<void>
7615  {
7616  public:
7617  typedef size_t size_type;
7618  typedef ptrdiff_t difference_type;
7619  typedef void* pointer;
7620  typedef const void* const_pointer;
7621  typedef void value_type;
7622 
7623  template<typename _Tp1>
7624  struct rebind
7625  { typedef allocator<_Tp1> other; };
7626 
7627 
7628 
7629 
7630  typedef true_type propagate_on_container_move_assignment;
7631 
7632  };
7633 # 91 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/allocator.h" 3
7634  template<typename _Tp>
7635  class allocator: public __allocator_base<_Tp>
7636  {
7637  public:
7638  typedef size_t size_type;
7639  typedef ptrdiff_t difference_type;
7640  typedef _Tp* pointer;
7641  typedef const _Tp* const_pointer;
7642  typedef _Tp& reference;
7643  typedef const _Tp& const_reference;
7644  typedef _Tp value_type;
7645 
7646  template<typename _Tp1>
7647  struct rebind
7648  { typedef allocator<_Tp1> other; };
7649 
7650 
7651 
7652 
7653  typedef true_type propagate_on_container_move_assignment;
7654 
7655 
7656  allocator() throw() { }
7657 
7658  allocator(const allocator& __a) throw()
7659  : __allocator_base<_Tp>(__a) { }
7660 
7661  template<typename _Tp1>
7662  allocator(const allocator<_Tp1>&) throw() { }
7663 
7664  ~allocator() throw() { }
7665 
7666 
7667  };
7668 
7669  template<typename _T1, typename _T2>
7670  inline bool
7671  operator==(const allocator<_T1>&, const allocator<_T2>&)
7672  { return true; }
7673 
7674  template<typename _Tp>
7675  inline bool
7676  operator==(const allocator<_Tp>&, const allocator<_Tp>&)
7677  { return true; }
7678 
7679  template<typename _T1, typename _T2>
7680  inline bool
7681  operator!=(const allocator<_T1>&, const allocator<_T2>&)
7682  { return false; }
7683 
7684  template<typename _Tp>
7685  inline bool
7686  operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
7687  { return false; }
7688 
7689 
7690 
7691 
7692 
7693 
7694  extern template class allocator<char>;
7695  extern template class allocator<wchar_t>;
7696 
7697 
7698 
7699 
7700 
7701 
7702  template<typename _Alloc, bool = __is_empty(_Alloc)>
7703  struct __alloc_swap
7704  { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } };
7705 
7706  template<typename _Alloc>
7707  struct __alloc_swap<_Alloc, false>
7708  {
7709  static void
7710  _S_do_it(_Alloc& __one, _Alloc& __two) noexcept
7711  {
7712 
7713  if (__one != __two)
7714  swap(__one, __two);
7715  }
7716  };
7717 
7718 
7719  template<typename _Alloc, bool = __is_empty(_Alloc)>
7720  struct __alloc_neq
7721  {
7722  static bool
7723  _S_do_it(const _Alloc&, const _Alloc&)
7724  { return false; }
7725  };
7726 
7727  template<typename _Alloc>
7728  struct __alloc_neq<_Alloc, false>
7729  {
7730  static bool
7731  _S_do_it(const _Alloc& __one, const _Alloc& __two)
7732  { return __one != __two; }
7733  };
7734 
7735 
7736  template<typename _Tp, bool
7737  = __or_<is_copy_constructible<typename _Tp::value_type>,
7738  is_nothrow_move_constructible<typename _Tp::value_type>>::value>
7739  struct __shrink_to_fit_aux
7740  { static bool _S_do_it(_Tp&) noexcept { return false; } };
7741 
7742  template<typename _Tp>
7743  struct __shrink_to_fit_aux<_Tp, true>
7744  {
7745  static bool
7746  _S_do_it(_Tp& __c) noexcept
7747  {
7748  try
7749  {
7750  _Tp(__make_move_if_noexcept_iterator(__c.begin()),
7751  __make_move_if_noexcept_iterator(__c.end()),
7752  __c.get_allocator()).swap(__c);
7753  return true;
7754  }
7755  catch(...)
7756  { return false; }
7757  }
7758  };
7759 
7760 
7761 
7762 }
7763 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
7764 
7765 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 1 3
7766 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 3
7767 
7768 
7769 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 1 3
7770 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 3
7771 
7772 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 1 3
7773 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 3
7774 
7775 
7776 # 1 "/usr/include/locale.h" 1 3 4
7777 # 28 "/usr/include/locale.h" 3 4
7778 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
7779 # 29 "/usr/include/locale.h" 2 3 4
7780 # 1 "/usr/include/bits/locale.h" 1 3 4
7781 # 30 "/usr/include/locale.h" 2 3 4
7782 
7783 extern "C" {
7784 # 53 "/usr/include/locale.h" 3 4
7785 struct lconv
7786 {
7787 
7788 
7789  char *decimal_point;
7790  char *thousands_sep;
7791 
7792 
7793 
7794 
7795 
7796  char *grouping;
7797 
7798 
7799 
7800 
7801 
7802  char *int_curr_symbol;
7803  char *currency_symbol;
7804  char *mon_decimal_point;
7805  char *mon_thousands_sep;
7806  char *mon_grouping;
7807  char *positive_sign;
7808  char *negative_sign;
7809  char int_frac_digits;
7810  char frac_digits;
7811 
7812  char p_cs_precedes;
7813 
7814  char p_sep_by_space;
7815 
7816  char n_cs_precedes;
7817 
7818  char n_sep_by_space;
7819 
7820 
7821 
7822 
7823 
7824 
7825  char p_sign_posn;
7826  char n_sign_posn;
7827 
7828 
7829  char int_p_cs_precedes;
7830 
7831  char int_p_sep_by_space;
7832 
7833  char int_n_cs_precedes;
7834 
7835  char int_n_sep_by_space;
7836 
7837 
7838 
7839 
7840 
7841 
7842  char int_p_sign_posn;
7843  char int_n_sign_posn;
7844 # 120 "/usr/include/locale.h" 3 4
7845 };
7846 
7847 
7848 
7849 extern char *setlocale (int __category, const char *__locale) throw ();
7850 
7851 
7852 extern struct lconv *localeconv (void) throw ();
7853 # 151 "/usr/include/locale.h" 3 4
7854 extern __locale_t newlocale (int __category_mask, const char *__locale,
7855  __locale_t __base) throw ();
7856 # 186 "/usr/include/locale.h" 3 4
7857 extern __locale_t duplocale (__locale_t __dataset) throw ();
7858 
7859 
7860 
7861 extern void freelocale (__locale_t __dataset) throw ();
7862 
7863 
7864 
7865 
7866 
7867 
7868 extern __locale_t uselocale (__locale_t __dataset) throw ();
7869 
7870 
7871 
7872 
7873 
7874 
7875 
7876 }
7877 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/clocale" 2 3
7878 
7879 
7880 
7881 
7882 
7883 
7884 
7885 
7886 namespace std
7887 {
7888  using ::lconv;
7889  using ::setlocale;
7890  using ::localeconv;
7891 }
7892 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 2 3
7893 
7894 
7895 
7896 
7897 
7898 
7899 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
7900 {
7901 
7902 
7903  extern "C" __typeof(uselocale) __uselocale;
7904 
7905 
7906 }
7907 
7908 
7909 namespace std __attribute__ ((__visibility__ ("default")))
7910 {
7911 
7912 
7913  typedef __locale_t __c_locale;
7914 
7915 
7916 
7917 
7918 
7919  inline int
7920  __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
7921  char* __out,
7922  const int __size __attribute__ ((__unused__)),
7923  const char* __fmt, ...)
7924  {
7925 
7926  __c_locale __old = __gnu_cxx::__uselocale(__cloc);
7927 # 88 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/c++locale.h" 3
7928  __builtin_va_list __args;
7929  __builtin_va_start(__args, __fmt);
7930 
7931 
7932  const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
7933 
7934 
7935 
7936 
7937  __builtin_va_end(__args);
7938 
7939 
7940  __gnu_cxx::__uselocale(__old);
7941 
7942 
7943 
7944 
7945 
7946 
7947 
7948  return __ret;
7949  }
7950 
7951 
7952 }
7953 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
7954 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 1 3
7955 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 3
7956 
7957 
7958 
7959 
7960 
7961 namespace std __attribute__ ((__visibility__ ("default")))
7962 {
7963 # 74 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iosfwd" 3
7964  class ios_base;
7965 
7966  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7967  class basic_ios;
7968 
7969  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7970  class basic_streambuf;
7971 
7972  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7973  class basic_istream;
7974 
7975  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7976  class basic_ostream;
7977 
7978  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7979  class basic_iostream;
7980 
7981  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7982  typename _Alloc = allocator<_CharT> >
7983  class basic_stringbuf;
7984 
7985  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7986  typename _Alloc = allocator<_CharT> >
7987  class basic_istringstream;
7988 
7989  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7990  typename _Alloc = allocator<_CharT> >
7991  class basic_ostringstream;
7992 
7993  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7994  typename _Alloc = allocator<_CharT> >
7995  class basic_stringstream;
7996 
7997  template<typename _CharT, typename _Traits = char_traits<_CharT> >
7998  class basic_filebuf;
7999 
8000  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8001  class basic_ifstream;
8002 
8003  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8004  class basic_ofstream;
8005 
8006  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8007  class basic_fstream;
8008 
8009  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8010  class istreambuf_iterator;
8011 
8012  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8013  class ostreambuf_iterator;
8014 
8015 
8016 
8017  typedef basic_ios<char> ios;
8018 
8019 
8020  typedef basic_streambuf<char> streambuf;
8021 
8022 
8023  typedef basic_istream<char> istream;
8024 
8025 
8026  typedef basic_ostream<char> ostream;
8027 
8028 
8029  typedef basic_iostream<char> iostream;
8030 
8031 
8032  typedef basic_stringbuf<char> stringbuf;
8033 
8034 
8035  typedef basic_istringstream<char> istringstream;
8036 
8037 
8038  typedef basic_ostringstream<char> ostringstream;
8039 
8040 
8041  typedef basic_stringstream<char> stringstream;
8042 
8043 
8044  typedef basic_filebuf<char> filebuf;
8045 
8046 
8047  typedef basic_ifstream<char> ifstream;
8048 
8049 
8050  typedef basic_ofstream<char> ofstream;
8051 
8052 
8053  typedef basic_fstream<char> fstream;
8054 
8055 
8056 
8057  typedef basic_ios<wchar_t> wios;
8058 
8059 
8060  typedef basic_streambuf<wchar_t> wstreambuf;
8061 
8062 
8063  typedef basic_istream<wchar_t> wistream;
8064 
8065 
8066  typedef basic_ostream<wchar_t> wostream;
8067 
8068 
8069  typedef basic_iostream<wchar_t> wiostream;
8070 
8071 
8072  typedef basic_stringbuf<wchar_t> wstringbuf;
8073 
8074 
8075  typedef basic_istringstream<wchar_t> wistringstream;
8076 
8077 
8078  typedef basic_ostringstream<wchar_t> wostringstream;
8079 
8080 
8081  typedef basic_stringstream<wchar_t> wstringstream;
8082 
8083 
8084  typedef basic_filebuf<wchar_t> wfilebuf;
8085 
8086 
8087  typedef basic_ifstream<wchar_t> wifstream;
8088 
8089 
8090  typedef basic_ofstream<wchar_t> wofstream;
8091 
8092 
8093  typedef basic_fstream<wchar_t> wfstream;
8094 
8095 
8096 
8097 
8098 }
8099 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
8100 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 1 3
8101 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
8102 
8103 
8104 # 1 "/usr/include/ctype.h" 1 3 4
8105 # 26 "/usr/include/ctype.h" 3 4
8106 # 1 "/usr/include/bits/types.h" 1 3 4
8107 # 27 "/usr/include/bits/types.h" 3 4
8108 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8109 # 28 "/usr/include/bits/types.h" 2 3 4
8110 
8111 
8112 typedef unsigned char __u_char;
8113 typedef unsigned short int __u_short;
8114 typedef unsigned int __u_int;
8115 typedef unsigned long int __u_long;
8116 
8117 
8118 typedef signed char __int8_t;
8119 typedef unsigned char __uint8_t;
8120 typedef signed short int __int16_t;
8121 typedef unsigned short int __uint16_t;
8122 typedef signed int __int32_t;
8123 typedef unsigned int __uint32_t;
8124 
8125 typedef signed long int __int64_t;
8126 typedef unsigned long int __uint64_t;
8127 
8128 
8129 
8130 
8131 
8132 
8133 
8134 typedef long int __quad_t;
8135 typedef unsigned long int __u_quad_t;
8136 # 121 "/usr/include/bits/types.h" 3 4
8137 # 1 "/usr/include/bits/typesizes.h" 1 3 4
8138 # 122 "/usr/include/bits/types.h" 2 3 4
8139 
8140 
8141 typedef unsigned long int __dev_t;
8142 typedef unsigned int __uid_t;
8143 typedef unsigned int __gid_t;
8144 typedef unsigned long int __ino_t;
8145 typedef unsigned long int __ino64_t;
8146 typedef unsigned int __mode_t;
8147 typedef unsigned long int __nlink_t;
8148 typedef long int __off_t;
8149 typedef long int __off64_t;
8150 typedef int __pid_t;
8151 typedef struct { int __val[2]; } __fsid_t;
8152 typedef long int __clock_t;
8153 typedef unsigned long int __rlim_t;
8154 typedef unsigned long int __rlim64_t;
8155 typedef unsigned int __id_t;
8156 typedef long int __time_t;
8157 typedef unsigned int __useconds_t;
8158 typedef long int __suseconds_t;
8159 
8160 typedef int __daddr_t;
8161 typedef int __key_t;
8162 
8163 
8164 typedef int __clockid_t;
8165 
8166 
8167 typedef void * __timer_t;
8168 
8169 
8170 typedef long int __blksize_t;
8171 
8172 
8173 
8174 
8175 typedef long int __blkcnt_t;
8176 typedef long int __blkcnt64_t;
8177 
8178 
8179 typedef unsigned long int __fsblkcnt_t;
8180 typedef unsigned long int __fsblkcnt64_t;
8181 
8182 
8183 typedef unsigned long int __fsfilcnt_t;
8184 typedef unsigned long int __fsfilcnt64_t;
8185 
8186 
8187 typedef long int __fsword_t;
8188 
8189 typedef long int __ssize_t;
8190 
8191 
8192 typedef long int __syscall_slong_t;
8193 
8194 typedef unsigned long int __syscall_ulong_t;
8195 
8196 
8197 
8198 typedef __off64_t __loff_t;
8199 typedef __quad_t *__qaddr_t;
8200 typedef char *__caddr_t;
8201 
8202 
8203 typedef long int __intptr_t;
8204 
8205 
8206 typedef unsigned int __socklen_t;
8207 # 27 "/usr/include/ctype.h" 2 3 4
8208 
8209 extern "C" {
8210 # 39 "/usr/include/ctype.h" 3 4
8211 # 1 "/usr/include/endian.h" 1 3 4
8212 # 36 "/usr/include/endian.h" 3 4
8213 # 1 "/usr/include/bits/endian.h" 1 3 4
8214 # 37 "/usr/include/endian.h" 2 3 4
8215 # 60 "/usr/include/endian.h" 3 4
8216 # 1 "/usr/include/bits/byteswap.h" 1 3 4
8217 # 28 "/usr/include/bits/byteswap.h" 3 4
8218 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8219 # 29 "/usr/include/bits/byteswap.h" 2 3 4
8220 
8221 
8222 
8223 
8224 
8225 
8226 # 1 "/usr/include/bits/byteswap-16.h" 1 3 4
8227 # 36 "/usr/include/bits/byteswap.h" 2 3 4
8228 # 61 "/usr/include/endian.h" 2 3 4
8229 # 40 "/usr/include/ctype.h" 2 3 4
8230 
8231 
8232 
8233 
8234 
8235 
8236 enum
8237 {
8238  _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
8239  _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
8240  _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
8241  _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
8242  _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
8243  _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
8244  _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
8245  _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
8246  _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
8247  _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
8248  _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
8249  _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
8250 };
8251 # 79 "/usr/include/ctype.h" 3 4
8252 extern const unsigned short int **__ctype_b_loc (void)
8253  throw () __attribute__ ((__const__));
8254 extern const __int32_t **__ctype_tolower_loc (void)
8255  throw () __attribute__ ((__const__));
8256 extern const __int32_t **__ctype_toupper_loc (void)
8257  throw () __attribute__ ((__const__));
8258 # 110 "/usr/include/ctype.h" 3 4
8259 extern int isalnum (int) throw ();
8260 extern int isalpha (int) throw ();
8261 extern int iscntrl (int) throw ();
8262 extern int isdigit (int) throw ();
8263 extern int islower (int) throw ();
8264 extern int isgraph (int) throw ();
8265 extern int isprint (int) throw ();
8266 extern int ispunct (int) throw ();
8267 extern int isspace (int) throw ();
8268 extern int isupper (int) throw ();
8269 extern int isxdigit (int) throw ();
8270 
8271 
8272 
8273 extern int tolower (int __c) throw ();
8274 
8275 
8276 extern int toupper (int __c) throw ();
8277 # 136 "/usr/include/ctype.h" 3 4
8278 extern int isblank (int) throw ();
8279 
8280 
8281 
8282 
8283 
8284 
8285 extern int isctype (int __c, int __mask) throw ();
8286 
8287 
8288 
8289 
8290 
8291 
8292 extern int isascii (int __c) throw ();
8293 
8294 
8295 
8296 extern int toascii (int __c) throw ();
8297 
8298 
8299 
8300 extern int _toupper (int) throw ();
8301 extern int _tolower (int) throw ();
8302 # 271 "/usr/include/ctype.h" 3 4
8303 extern int isalnum_l (int, __locale_t) throw ();
8304 extern int isalpha_l (int, __locale_t) throw ();
8305 extern int iscntrl_l (int, __locale_t) throw ();
8306 extern int isdigit_l (int, __locale_t) throw ();
8307 extern int islower_l (int, __locale_t) throw ();
8308 extern int isgraph_l (int, __locale_t) throw ();
8309 extern int isprint_l (int, __locale_t) throw ();
8310 extern int ispunct_l (int, __locale_t) throw ();
8311 extern int isspace_l (int, __locale_t) throw ();
8312 extern int isupper_l (int, __locale_t) throw ();
8313 extern int isxdigit_l (int, __locale_t) throw ();
8314 
8315 extern int isblank_l (int, __locale_t) throw ();
8316 
8317 
8318 
8319 extern int __tolower_l (int __c, __locale_t __l) throw ();
8320 extern int tolower_l (int __c, __locale_t __l) throw ();
8321 
8322 
8323 extern int __toupper_l (int __c, __locale_t __l) throw ();
8324 extern int toupper_l (int __c, __locale_t __l) throw ();
8325 # 347 "/usr/include/ctype.h" 3 4
8326 }
8327 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 2 3
8328 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
8329 namespace std
8330 {
8331  using ::isalnum;
8332  using ::isalpha;
8333  using ::iscntrl;
8334  using ::isdigit;
8335  using ::isgraph;
8336  using ::islower;
8337  using ::isprint;
8338  using ::ispunct;
8339  using ::isspace;
8340  using ::isupper;
8341  using ::isxdigit;
8342  using ::tolower;
8343  using ::toupper;
8344 }
8345 
8346 
8347 
8348 
8349 
8350 
8351 
8352 namespace std
8353 {
8354  using ::isblank;
8355 }
8356 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 2 3
8357 
8358 namespace std __attribute__ ((__visibility__ ("default")))
8359 {
8360 # 55 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/localefwd.h" 3
8361  class locale;
8362 
8363  template<typename _Facet>
8364  bool
8365  has_facet(const locale&) throw();
8366 
8367  template<typename _Facet>
8368  const _Facet&
8369  use_facet(const locale&);
8370 
8371 
8372  template<typename _CharT>
8373  bool
8374  isspace(_CharT, const locale&);
8375 
8376  template<typename _CharT>
8377  bool
8378  isprint(_CharT, const locale&);
8379 
8380  template<typename _CharT>
8381  bool
8382  iscntrl(_CharT, const locale&);
8383 
8384  template<typename _CharT>
8385  bool
8386  isupper(_CharT, const locale&);
8387 
8388  template<typename _CharT>
8389  bool
8390  islower(_CharT, const locale&);
8391 
8392  template<typename _CharT>
8393  bool
8394  isalpha(_CharT, const locale&);
8395 
8396  template<typename _CharT>
8397  bool
8398  isdigit(_CharT, const locale&);
8399 
8400  template<typename _CharT>
8401  bool
8402  ispunct(_CharT, const locale&);
8403 
8404  template<typename _CharT>
8405  bool
8406  isxdigit(_CharT, const locale&);
8407 
8408  template<typename _CharT>
8409  bool
8410  isalnum(_CharT, const locale&);
8411 
8412  template<typename _CharT>
8413  bool
8414  isgraph(_CharT, const locale&);
8415 
8416  template<typename _CharT>
8417  _CharT
8418  toupper(_CharT, const locale&);
8419 
8420  template<typename _CharT>
8421  _CharT
8422  tolower(_CharT, const locale&);
8423 
8424 
8425  class ctype_base;
8426  template<typename _CharT>
8427  class ctype;
8428  template<> class ctype<char>;
8429 
8430  template<> class ctype<wchar_t>;
8431 
8432  template<typename _CharT>
8433  class ctype_byname;
8434 
8435 
8436  class codecvt_base;
8437  template<typename _InternT, typename _ExternT, typename _StateT>
8438  class codecvt;
8439  template<> class codecvt<char, char, mbstate_t>;
8440 
8441  template<> class codecvt<wchar_t, char, mbstate_t>;
8442 
8443  template<typename _InternT, typename _ExternT, typename _StateT>
8444  class codecvt_byname;
8445 
8446 
8447 
8448  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8449  class num_get;
8450  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8451  class num_put;
8452 
8453  template<typename _CharT> class numpunct;
8454  template<typename _CharT> class numpunct_byname;
8455 
8456 
8457  template<typename _CharT>
8458  class collate;
8459  template<typename _CharT> class
8460  collate_byname;
8461 
8462 
8463  class time_base;
8464  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8465  class time_get;
8466  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8467  class time_get_byname;
8468  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8469  class time_put;
8470  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8471  class time_put_byname;
8472 
8473 
8474  class money_base;
8475 
8476  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
8477  class money_get;
8478  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
8479  class money_put;
8480 
8481  template<typename _CharT, bool _Intl = false>
8482  class moneypunct;
8483  template<typename _CharT, bool _Intl = false>
8484  class moneypunct_byname;
8485 
8486 
8487  class messages_base;
8488  template<typename _CharT>
8489  class messages;
8490  template<typename _CharT>
8491  class messages_byname;
8492 
8493 
8494 }
8495 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
8496 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 1 3
8497 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 3
8498 
8499 
8500 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cxxabi_forced.h" 1 3
8501 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/cxxabi_forced.h" 3
8502 
8503 #pragma GCC visibility push(default)
8504 
8505 
8506 namespace __cxxabiv1
8507 {
8508 
8509 
8510 
8511 
8512 
8513 
8514 
8515  class __forced_unwind
8516  {
8517  virtual ~__forced_unwind() throw();
8518 
8519 
8520  virtual void __pure_dummy() = 0;
8521  };
8522 }
8523 
8524 
8525 #pragma GCC visibility pop
8526 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream_insert.h" 2 3
8527 
8528 namespace std __attribute__ ((__visibility__ ("default")))
8529 {
8530 
8531 
8532  template<typename _CharT, typename _Traits>
8533  inline void
8534  __ostream_write(basic_ostream<_CharT, _Traits>& __out,
8535  const _CharT* __s, streamsize __n)
8536  {
8537  typedef basic_ostream<_CharT, _Traits> __ostream_type;
8538  typedef typename __ostream_type::ios_base __ios_base;
8539 
8540  const streamsize __put = __out.rdbuf()->sputn(__s, __n);
8541  if (__put != __n)
8542  __out.setstate(__ios_base::badbit);
8543  }
8544 
8545  template<typename _CharT, typename _Traits>
8546  inline void
8547  __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
8548  {
8549  typedef basic_ostream<_CharT, _Traits> __ostream_type;
8550  typedef typename __ostream_type::ios_base __ios_base;
8551 
8552  const _CharT __c = __out.fill();
8553  for (; __n > 0; --__n)
8554  {
8555  const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
8556  if (_Traits::eq_int_type(__put, _Traits::eof()))
8557  {
8558  __out.setstate(__ios_base::badbit);
8559  break;
8560  }
8561  }
8562  }
8563 
8564  template<typename _CharT, typename _Traits>
8565  basic_ostream<_CharT, _Traits>&
8566  __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
8567  const _CharT* __s, streamsize __n)
8568  {
8569  typedef basic_ostream<_CharT, _Traits> __ostream_type;
8570  typedef typename __ostream_type::ios_base __ios_base;
8571 
8572  typename __ostream_type::sentry __cerb(__out);
8573  if (__cerb)
8574  {
8575  try
8576  {
8577  const streamsize __w = __out.width();
8578  if (__w > __n)
8579  {
8580  const bool __left = ((__out.flags()
8581  & __ios_base::adjustfield)
8582  == __ios_base::left);
8583  if (!__left)
8584  __ostream_fill(__out, __w - __n);
8585  if (__out.good())
8586  __ostream_write(__out, __s, __n);
8587  if (__left && __out.good())
8588  __ostream_fill(__out, __w - __n);
8589  }
8590  else
8591  __ostream_write(__out, __s, __n);
8592  __out.width(0);
8593  }
8595  {
8596  __out._M_setstate(__ios_base::badbit);
8597  throw;
8598  }
8599  catch(...)
8600  { __out._M_setstate(__ios_base::badbit); }
8601  }
8602  return __out;
8603  }
8604 
8605 
8606 
8607 
8608  extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
8609 
8610 
8611  extern template wostream& __ostream_insert(wostream&, const wchar_t*,
8612  streamsize);
8613 
8614 
8615 
8616 
8617 }
8618 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
8619 
8620 
8621 
8622 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 1 3
8623 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8624 namespace std __attribute__ ((__visibility__ ("default")))
8625 {
8626 # 104 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8627  template<typename _Arg, typename _Result>
8628  struct unary_function
8629  {
8630 
8631  typedef _Arg argument_type;
8632 
8633 
8634  typedef _Result result_type;
8635  };
8636 
8637 
8638 
8639 
8640  template<typename _Arg1, typename _Arg2, typename _Result>
8641  struct binary_function
8642  {
8643 
8644  typedef _Arg1 first_argument_type;
8645 
8646 
8647  typedef _Arg2 second_argument_type;
8648 
8649 
8650  typedef _Result result_type;
8651  };
8652 # 166 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8653  template<typename _Tp>
8654  struct plus : public binary_function<_Tp, _Tp, _Tp>
8655  {
8656  _Tp
8657  operator()(const _Tp& __x, const _Tp& __y) const
8658  { return __x + __y; }
8659  };
8660 
8661 
8662  template<typename _Tp>
8663  struct minus : public binary_function<_Tp, _Tp, _Tp>
8664  {
8665  _Tp
8666  operator()(const _Tp& __x, const _Tp& __y) const
8667  { return __x - __y; }
8668  };
8669 
8670 
8671  template<typename _Tp>
8672  struct multiplies : public binary_function<_Tp, _Tp, _Tp>
8673  {
8674  _Tp
8675  operator()(const _Tp& __x, const _Tp& __y) const
8676  { return __x * __y; }
8677  };
8678 
8679 
8680  template<typename _Tp>
8681  struct divides : public binary_function<_Tp, _Tp, _Tp>
8682  {
8683  _Tp
8684  operator()(const _Tp& __x, const _Tp& __y) const
8685  { return __x / __y; }
8686  };
8687 
8688 
8689  template<typename _Tp>
8690  struct modulus : public binary_function<_Tp, _Tp, _Tp>
8691  {
8692  _Tp
8693  operator()(const _Tp& __x, const _Tp& __y) const
8694  { return __x % __y; }
8695  };
8696 
8697 
8698  template<typename _Tp>
8699  struct negate : public unary_function<_Tp, _Tp>
8700  {
8701  _Tp
8702  operator()(const _Tp& __x) const
8703  { return -__x; }
8704  };
8705 # 335 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8706  template<typename _Tp>
8707  struct equal_to : public binary_function<_Tp, _Tp, bool>
8708  {
8709  bool
8710  operator()(const _Tp& __x, const _Tp& __y) const
8711  { return __x == __y; }
8712  };
8713 
8714 
8715  template<typename _Tp>
8716  struct not_equal_to : public binary_function<_Tp, _Tp, bool>
8717  {
8718  bool
8719  operator()(const _Tp& __x, const _Tp& __y) const
8720  { return __x != __y; }
8721  };
8722 
8723 
8724  template<typename _Tp>
8725  struct greater : public binary_function<_Tp, _Tp, bool>
8726  {
8727  bool
8728  operator()(const _Tp& __x, const _Tp& __y) const
8729  { return __x > __y; }
8730  };
8731 
8732 
8733  template<typename _Tp>
8734  struct less : public binary_function<_Tp, _Tp, bool>
8735  {
8736  bool
8737  operator()(const _Tp& __x, const _Tp& __y) const
8738  { return __x < __y; }
8739  };
8740 
8741 
8742  template<typename _Tp>
8743  struct greater_equal : public binary_function<_Tp, _Tp, bool>
8744  {
8745  bool
8746  operator()(const _Tp& __x, const _Tp& __y) const
8747  { return __x >= __y; }
8748  };
8749 
8750 
8751  template<typename _Tp>
8752  struct less_equal : public binary_function<_Tp, _Tp, bool>
8753  {
8754  bool
8755  operator()(const _Tp& __x, const _Tp& __y) const
8756  { return __x <= __y; }
8757  };
8758 # 496 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8759  template<typename _Tp>
8760  struct logical_and : public binary_function<_Tp, _Tp, bool>
8761  {
8762  bool
8763  operator()(const _Tp& __x, const _Tp& __y) const
8764  { return __x && __y; }
8765  };
8766 
8767 
8768  template<typename _Tp>
8769  struct logical_or : public binary_function<_Tp, _Tp, bool>
8770  {
8771  bool
8772  operator()(const _Tp& __x, const _Tp& __y) const
8773  { return __x || __y; }
8774  };
8775 
8776 
8777  template<typename _Tp>
8778  struct logical_not : public unary_function<_Tp, bool>
8779  {
8780  bool
8781  operator()(const _Tp& __x) const
8782  { return !__x; }
8783  };
8784 # 583 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8785  template<typename _Tp>
8786  struct bit_and : public binary_function<_Tp, _Tp, _Tp>
8787  {
8788  _Tp
8789  operator()(const _Tp& __x, const _Tp& __y) const
8790  { return __x & __y; }
8791  };
8792 
8793  template<typename _Tp>
8794  struct bit_or : public binary_function<_Tp, _Tp, _Tp>
8795  {
8796  _Tp
8797  operator()(const _Tp& __x, const _Tp& __y) const
8798  { return __x | __y; }
8799  };
8800 
8801  template<typename _Tp>
8802  struct bit_xor : public binary_function<_Tp, _Tp, _Tp>
8803  {
8804  _Tp
8805  operator()(const _Tp& __x, const _Tp& __y) const
8806  { return __x ^ __y; }
8807  };
8808 
8809  template<typename _Tp>
8810  struct bit_not : public unary_function<_Tp, _Tp>
8811  {
8812  _Tp
8813  operator()(const _Tp& __x) const
8814  { return ~__x; }
8815  };
8816 # 699 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8817  template<typename _Predicate>
8818  class unary_negate
8819  : public unary_function<typename _Predicate::argument_type, bool>
8820  {
8821  protected:
8822  _Predicate _M_pred;
8823 
8824  public:
8825  explicit
8826  unary_negate(const _Predicate& __x) : _M_pred(__x) { }
8827 
8828  bool
8829  operator()(const typename _Predicate::argument_type& __x) const
8830  { return !_M_pred(__x); }
8831  };
8832 
8833 
8834  template<typename _Predicate>
8835  inline unary_negate<_Predicate>
8836  not1(const _Predicate& __pred)
8837  { return unary_negate<_Predicate>(__pred); }
8838 
8839 
8840  template<typename _Predicate>
8841  class binary_negate
8842  : public binary_function<typename _Predicate::first_argument_type,
8843  typename _Predicate::second_argument_type, bool>
8844  {
8845  protected:
8846  _Predicate _M_pred;
8847 
8848  public:
8849  explicit
8850  binary_negate(const _Predicate& __x) : _M_pred(__x) { }
8851 
8852  bool
8853  operator()(const typename _Predicate::first_argument_type& __x,
8854  const typename _Predicate::second_argument_type& __y) const
8855  { return !_M_pred(__x, __y); }
8856  };
8857 
8858 
8859  template<typename _Predicate>
8860  inline binary_negate<_Predicate>
8861  not2(const _Predicate& __pred)
8862  { return binary_negate<_Predicate>(__pred); }
8863 # 770 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8864  template<typename _Arg, typename _Result>
8865  class pointer_to_unary_function : public unary_function<_Arg, _Result>
8866  {
8867  protected:
8868  _Result (*_M_ptr)(_Arg);
8869 
8870  public:
8871  pointer_to_unary_function() { }
8872 
8873  explicit
8874  pointer_to_unary_function(_Result (*__x)(_Arg))
8875  : _M_ptr(__x) { }
8876 
8877  _Result
8878  operator()(_Arg __x) const
8879  { return _M_ptr(__x); }
8880  };
8881 
8882 
8883  template<typename _Arg, typename _Result>
8884  inline pointer_to_unary_function<_Arg, _Result>
8885  ptr_fun(_Result (*__x)(_Arg))
8886  { return pointer_to_unary_function<_Arg, _Result>(__x); }
8887 
8888 
8889  template<typename _Arg1, typename _Arg2, typename _Result>
8890  class pointer_to_binary_function
8891  : public binary_function<_Arg1, _Arg2, _Result>
8892  {
8893  protected:
8894  _Result (*_M_ptr)(_Arg1, _Arg2);
8895 
8896  public:
8897  pointer_to_binary_function() { }
8898 
8899  explicit
8900  pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
8901  : _M_ptr(__x) { }
8902 
8903  _Result
8904  operator()(_Arg1 __x, _Arg2 __y) const
8905  { return _M_ptr(__x, __y); }
8906  };
8907 
8908 
8909  template<typename _Arg1, typename _Arg2, typename _Result>
8910  inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
8911  ptr_fun(_Result (*__x)(_Arg1, _Arg2))
8912  { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
8913 
8914 
8915  template<typename _Tp>
8916  struct _Identity
8917  : public unary_function<_Tp,_Tp>
8918  {
8919  _Tp&
8920  operator()(_Tp& __x) const
8921  { return __x; }
8922 
8923  const _Tp&
8924  operator()(const _Tp& __x) const
8925  { return __x; }
8926  };
8927 
8928  template<typename _Pair>
8929  struct _Select1st
8930  : public unary_function<_Pair, typename _Pair::first_type>
8931  {
8932  typename _Pair::first_type&
8933  operator()(_Pair& __x) const
8934  { return __x.first; }
8935 
8936  const typename _Pair::first_type&
8937  operator()(const _Pair& __x) const
8938  { return __x.first; }
8939 
8940 
8941  template<typename _Pair2>
8942  typename _Pair2::first_type&
8943  operator()(_Pair2& __x) const
8944  { return __x.first; }
8945 
8946  template<typename _Pair2>
8947  const typename _Pair2::first_type&
8948  operator()(const _Pair2& __x) const
8949  { return __x.first; }
8950 
8951  };
8952 
8953  template<typename _Pair>
8954  struct _Select2nd
8955  : public unary_function<_Pair, typename _Pair::second_type>
8956  {
8957  typename _Pair::second_type&
8958  operator()(_Pair& __x) const
8959  { return __x.second; }
8960 
8961  const typename _Pair::second_type&
8962  operator()(const _Pair& __x) const
8963  { return __x.second; }
8964  };
8965 # 890 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 3
8966  template<typename _Ret, typename _Tp>
8967  class mem_fun_t : public unary_function<_Tp*, _Ret>
8968  {
8969  public:
8970  explicit
8971  mem_fun_t(_Ret (_Tp::*__pf)())
8972  : _M_f(__pf) { }
8973 
8974  _Ret
8975  operator()(_Tp* __p) const
8976  { return (__p->*_M_f)(); }
8977 
8978  private:
8979  _Ret (_Tp::*_M_f)();
8980  };
8981 
8982 
8983 
8984  template<typename _Ret, typename _Tp>
8985  class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
8986  {
8987  public:
8988  explicit
8989  const_mem_fun_t(_Ret (_Tp::*__pf)() const)
8990  : _M_f(__pf) { }
8991 
8992  _Ret
8993  operator()(const _Tp* __p) const
8994  { return (__p->*_M_f)(); }
8995 
8996  private:
8997  _Ret (_Tp::*_M_f)() const;
8998  };
8999 
9000 
9001 
9002  template<typename _Ret, typename _Tp>
9003  class mem_fun_ref_t : public unary_function<_Tp, _Ret>
9004  {
9005  public:
9006  explicit
9007  mem_fun_ref_t(_Ret (_Tp::*__pf)())
9008  : _M_f(__pf) { }
9009 
9010  _Ret
9011  operator()(_Tp& __r) const
9012  { return (__r.*_M_f)(); }
9013 
9014  private:
9015  _Ret (_Tp::*_M_f)();
9016  };
9017 
9018 
9019 
9020  template<typename _Ret, typename _Tp>
9021  class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
9022  {
9023  public:
9024  explicit
9025  const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
9026  : _M_f(__pf) { }
9027 
9028  _Ret
9029  operator()(const _Tp& __r) const
9030  { return (__r.*_M_f)(); }
9031 
9032  private:
9033  _Ret (_Tp::*_M_f)() const;
9034  };
9035 
9036 
9037 
9038  template<typename _Ret, typename _Tp, typename _Arg>
9039  class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
9040  {
9041  public:
9042  explicit
9043  mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
9044  : _M_f(__pf) { }
9045 
9046  _Ret
9047  operator()(_Tp* __p, _Arg __x) const
9048  { return (__p->*_M_f)(__x); }
9049 
9050  private:
9051  _Ret (_Tp::*_M_f)(_Arg);
9052  };
9053 
9054 
9055 
9056  template<typename _Ret, typename _Tp, typename _Arg>
9057  class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
9058  {
9059  public:
9060  explicit
9061  const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
9062  : _M_f(__pf) { }
9063 
9064  _Ret
9065  operator()(const _Tp* __p, _Arg __x) const
9066  { return (__p->*_M_f)(__x); }
9067 
9068  private:
9069  _Ret (_Tp::*_M_f)(_Arg) const;
9070  };
9071 
9072 
9073 
9074  template<typename _Ret, typename _Tp, typename _Arg>
9075  class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
9076  {
9077  public:
9078  explicit
9079  mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
9080  : _M_f(__pf) { }
9081 
9082  _Ret
9083  operator()(_Tp& __r, _Arg __x) const
9084  { return (__r.*_M_f)(__x); }
9085 
9086  private:
9087  _Ret (_Tp::*_M_f)(_Arg);
9088  };
9089 
9090 
9091 
9092  template<typename _Ret, typename _Tp, typename _Arg>
9093  class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
9094  {
9095  public:
9096  explicit
9097  const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
9098  : _M_f(__pf) { }
9099 
9100  _Ret
9101  operator()(const _Tp& __r, _Arg __x) const
9102  { return (__r.*_M_f)(__x); }
9103 
9104  private:
9105  _Ret (_Tp::*_M_f)(_Arg) const;
9106  };
9107 
9108 
9109 
9110  template<typename _Ret, typename _Tp>
9111  inline mem_fun_t<_Ret, _Tp>
9112  mem_fun(_Ret (_Tp::*__f)())
9113  { return mem_fun_t<_Ret, _Tp>(__f); }
9114 
9115  template<typename _Ret, typename _Tp>
9116  inline const_mem_fun_t<_Ret, _Tp>
9117  mem_fun(_Ret (_Tp::*__f)() const)
9118  { return const_mem_fun_t<_Ret, _Tp>(__f); }
9119 
9120  template<typename _Ret, typename _Tp>
9121  inline mem_fun_ref_t<_Ret, _Tp>
9122  mem_fun_ref(_Ret (_Tp::*__f)())
9123  { return mem_fun_ref_t<_Ret, _Tp>(__f); }
9124 
9125  template<typename _Ret, typename _Tp>
9126  inline const_mem_fun_ref_t<_Ret, _Tp>
9127  mem_fun_ref(_Ret (_Tp::*__f)() const)
9128  { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
9129 
9130  template<typename _Ret, typename _Tp, typename _Arg>
9131  inline mem_fun1_t<_Ret, _Tp, _Arg>
9132  mem_fun(_Ret (_Tp::*__f)(_Arg))
9133  { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
9134 
9135  template<typename _Ret, typename _Tp, typename _Arg>
9136  inline const_mem_fun1_t<_Ret, _Tp, _Arg>
9137  mem_fun(_Ret (_Tp::*__f)(_Arg) const)
9138  { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
9139 
9140  template<typename _Ret, typename _Tp, typename _Arg>
9141  inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
9142  mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
9143  { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
9144 
9145  template<typename _Ret, typename _Tp, typename _Arg>
9146  inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
9147  mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
9148  { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
9149 
9150 
9151 
9152 
9153 }
9154 
9155 
9156 
9157 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 1 3
9158 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 3
9159 namespace std __attribute__ ((__visibility__ ("default")))
9160 {
9161 # 103 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward/binders.h" 3
9162  template<typename _Operation>
9163  class binder1st
9164  : public unary_function<typename _Operation::second_argument_type,
9165  typename _Operation::result_type>
9166  {
9167  protected:
9168  _Operation op;
9169  typename _Operation::first_argument_type value;
9170 
9171  public:
9172  binder1st(const _Operation& __x,
9173  const typename _Operation::first_argument_type& __y)
9174  : op(__x), value(__y) { }
9175 
9176  typename _Operation::result_type
9177  operator()(const typename _Operation::second_argument_type& __x) const
9178  { return op(value, __x); }
9179 
9180 
9181 
9182  typename _Operation::result_type
9183  operator()(typename _Operation::second_argument_type& __x) const
9184  { return op(value, __x); }
9185  } __attribute__ ((__deprecated__));
9186 
9187 
9188  template<typename _Operation, typename _Tp>
9189  inline binder1st<_Operation>
9190  bind1st(const _Operation& __fn, const _Tp& __x)
9191  {
9192  typedef typename _Operation::first_argument_type _Arg1_type;
9193  return binder1st<_Operation>(__fn, _Arg1_type(__x));
9194  }
9195 
9196 
9197  template<typename _Operation>
9198  class binder2nd
9199  : public unary_function<typename _Operation::first_argument_type,
9200  typename _Operation::result_type>
9201  {
9202  protected:
9203  _Operation op;
9204  typename _Operation::second_argument_type value;
9205 
9206  public:
9207  binder2nd(const _Operation& __x,
9208  const typename _Operation::second_argument_type& __y)
9209  : op(__x), value(__y) { }
9210 
9211  typename _Operation::result_type
9212  operator()(const typename _Operation::first_argument_type& __x) const
9213  { return op(__x, value); }
9214 
9215 
9216 
9217  typename _Operation::result_type
9218  operator()(typename _Operation::first_argument_type& __x) const
9219  { return op(__x, value); }
9220  } __attribute__ ((__deprecated__));
9221 
9222 
9223  template<typename _Operation, typename _Tp>
9224  inline binder2nd<_Operation>
9225  bind2nd(const _Operation& __fn, const _Tp& __x)
9226  {
9227  typedef typename _Operation::second_argument_type _Arg2_type;
9228  return binder2nd<_Operation>(__fn, _Arg2_type(__x));
9229  }
9230 
9231 
9232 
9233 }
9234 # 1081 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_function.h" 2 3
9235 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
9236 
9237 
9238 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/range_access.h" 1 3
9239 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/range_access.h" 3
9240 
9241 
9242 
9243 namespace std __attribute__ ((__visibility__ ("default")))
9244 {
9245 
9246 
9247 
9248 
9249 
9250 
9251 
9252  template<class _Container>
9253  inline auto
9254  begin(_Container& __cont) -> decltype(__cont.begin())
9255  { return __cont.begin(); }
9256 
9257 
9258 
9259 
9260 
9261 
9262  template<class _Container>
9263  inline auto
9264  begin(const _Container& __cont) -> decltype(__cont.begin())
9265  { return __cont.begin(); }
9266 
9267 
9268 
9269 
9270 
9271 
9272  template<class _Container>
9273  inline auto
9274  end(_Container& __cont) -> decltype(__cont.end())
9275  { return __cont.end(); }
9276 
9277 
9278 
9279 
9280 
9281 
9282  template<class _Container>
9283  inline auto
9284  end(const _Container& __cont) -> decltype(__cont.end())
9285  { return __cont.end(); }
9286 
9287 
9288 
9289 
9290 
9291  template<class _Tp, size_t _Nm>
9292  inline _Tp*
9293  begin(_Tp (&__arr)[_Nm])
9294  { return __arr; }
9295 
9296 
9297 
9298 
9299 
9300 
9301  template<class _Tp, size_t _Nm>
9302  inline _Tp*
9303  end(_Tp (&__arr)[_Nm])
9304  { return __arr + _Nm; }
9305 
9306 
9307 }
9308 # 52 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
9309 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 1 3
9310 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
9311 
9312 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 1 3
9313 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 3
9314 
9315 
9316 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 1 3
9317 # 30 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 3
9318 #pragma GCC visibility push(default)
9319 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 3
9320 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 1 3
9321 # 35 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
9322 # 1 "/usr/include/pthread.h" 1 3 4
9323 # 23 "/usr/include/pthread.h" 3 4
9324 # 1 "/usr/include/sched.h" 1 3 4
9325 # 28 "/usr/include/sched.h" 3 4
9326 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
9327 # 29 "/usr/include/sched.h" 2 3 4
9328 
9329 
9330 
9331 # 1 "/usr/include/time.h" 1 3 4
9332 # 75 "/usr/include/time.h" 3 4
9333 typedef __time_t time_t;
9334 # 120 "/usr/include/time.h" 3 4
9335 struct timespec
9336  {
9337  __time_t tv_sec;
9338  __syscall_slong_t tv_nsec;
9339  };
9340 # 33 "/usr/include/sched.h" 2 3 4
9341 
9342 
9343 typedef __pid_t pid_t;
9344 
9345 
9346 
9347 
9348 
9349 
9350 # 1 "/usr/include/bits/sched.h" 1 3 4
9351 # 72 "/usr/include/bits/sched.h" 3 4
9352 struct sched_param
9353  {
9354  int __sched_priority;
9355  };
9356 
9357 extern "C" {
9358 
9359 
9360 
9361 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
9362  int __flags, void *__arg, ...) throw ();
9363 
9364 
9365 extern int unshare (int __flags) throw ();
9366 
9367 
9368 extern int sched_getcpu (void) throw ();
9369 
9370 
9371 extern int setns (int __fd, int __nstype) throw ();
9372 
9373 
9374 
9375 }
9376 
9377 
9378 
9379 
9380 
9381 
9382 
9383 struct __sched_param
9384  {
9385  int __sched_priority;
9386  };
9387 # 118 "/usr/include/bits/sched.h" 3 4
9388 typedef unsigned long int __cpu_mask;
9389 
9390 
9391 
9392 
9393 
9394 
9395 typedef struct
9396 {
9397  __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
9398 } cpu_set_t;
9399 # 201 "/usr/include/bits/sched.h" 3 4
9400 extern "C" {
9401 
9402 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
9403  throw ();
9404 extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ;
9405 extern void __sched_cpufree (cpu_set_t *__set) throw ();
9406 
9407 }
9408 # 42 "/usr/include/sched.h" 2 3 4
9409 
9410 
9411 
9412 
9413 extern "C" {
9414 
9415 
9416 extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
9417  throw ();
9418 
9419 
9420 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
9421 
9422 
9423 extern int sched_setscheduler (__pid_t __pid, int __policy,
9424  const struct sched_param *__param) throw ();
9425 
9426 
9427 extern int sched_getscheduler (__pid_t __pid) throw ();
9428 
9429 
9430 extern int sched_yield (void) throw ();
9431 
9432 
9433 extern int sched_get_priority_max (int __algorithm) throw ();
9434 
9435 
9436 extern int sched_get_priority_min (int __algorithm) throw ();
9437 
9438 
9439 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
9440 # 116 "/usr/include/sched.h" 3 4
9441 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
9442  const cpu_set_t *__cpuset) throw ();
9443 
9444 
9445 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
9446  cpu_set_t *__cpuset) throw ();
9447 
9448 
9449 }
9450 # 24 "/usr/include/pthread.h" 2 3 4
9451 # 1 "/usr/include/time.h" 1 3 4
9452 # 29 "/usr/include/time.h" 3 4
9453 extern "C" {
9454 
9455 
9456 
9457 
9458 
9459 
9460 
9461 
9462 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
9463 # 38 "/usr/include/time.h" 2 3 4
9464 
9465 
9466 
9467 # 1 "/usr/include/bits/time.h" 1 3 4
9468 # 30 "/usr/include/bits/time.h" 3 4
9469 struct timeval
9470  {
9471  __time_t tv_sec;
9472  __suseconds_t tv_usec;
9473  };
9474 # 86 "/usr/include/bits/time.h" 3 4
9475 # 1 "/usr/include/bits/timex.h" 1 3 4
9476 # 25 "/usr/include/bits/timex.h" 3 4
9477 struct timex
9478 {
9479  unsigned int modes;
9480  __syscall_slong_t offset;
9481  __syscall_slong_t freq;
9482  __syscall_slong_t maxerror;
9483  __syscall_slong_t esterror;
9484  int status;
9485  __syscall_slong_t constant;
9486  __syscall_slong_t precision;
9487  __syscall_slong_t tolerance;
9488  struct timeval time;
9489  __syscall_slong_t tick;
9490  __syscall_slong_t ppsfreq;
9491  __syscall_slong_t jitter;
9492  int shift;
9493  __syscall_slong_t stabil;
9494  __syscall_slong_t jitcnt;
9495  __syscall_slong_t calcnt;
9496  __syscall_slong_t errcnt;
9497  __syscall_slong_t stbcnt;
9498 
9499  int tai;
9500 
9501 
9502  int :32; int :32; int :32; int :32;
9503  int :32; int :32; int :32; int :32;
9504  int :32; int :32; int :32;
9505 };
9506 # 87 "/usr/include/bits/time.h" 2 3 4
9507 
9508 extern "C" {
9509 
9510 
9511 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw ();
9512 
9513 }
9514 # 42 "/usr/include/time.h" 2 3 4
9515 # 59 "/usr/include/time.h" 3 4
9516 typedef __clock_t clock_t;
9517 # 91 "/usr/include/time.h" 3 4
9518 typedef __clockid_t clockid_t;
9519 # 103 "/usr/include/time.h" 3 4
9520 typedef __timer_t timer_t;
9521 # 133 "/usr/include/time.h" 3 4
9522 struct tm
9523 {
9524  int tm_sec;
9525  int tm_min;
9526  int tm_hour;
9527  int tm_mday;
9528  int tm_mon;
9529  int tm_year;
9530  int tm_wday;
9531  int tm_yday;
9532  int tm_isdst;
9533 
9534 
9535  long int tm_gmtoff;
9536  const char *tm_zone;
9537 
9538 
9539 
9540 
9541 };
9542 # 161 "/usr/include/time.h" 3 4
9543 struct itimerspec
9544  {
9545  struct timespec it_interval;
9546  struct timespec it_value;
9547  };
9548 
9549 
9550 struct sigevent;
9551 # 189 "/usr/include/time.h" 3 4
9552 extern clock_t clock (void) throw ();
9553 
9554 
9555 extern time_t time (time_t *__timer) throw ();
9556 
9557 
9558 extern double difftime (time_t __time1, time_t __time0)
9559  throw () __attribute__ ((__const__));
9560 
9561 
9562 extern time_t mktime (struct tm *__tp) throw ();
9563 
9564 
9565 
9566 
9567 
9568 extern size_t strftime (char *__restrict __s, size_t __maxsize,
9569  const char *__restrict __format,
9570  const struct tm *__restrict __tp) throw ();
9571 
9572 
9573 
9574 
9575 
9576 extern char *strptime (const char *__restrict __s,
9577  const char *__restrict __fmt, struct tm *__tp)
9578  throw ();
9579 
9580 
9581 
9582 
9583 
9584 
9585 
9586 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
9587  const char *__restrict __format,
9588  const struct tm *__restrict __tp,
9589  __locale_t __loc) throw ();
9590 
9591 
9592 
9593 extern char *strptime_l (const char *__restrict __s,
9594  const char *__restrict __fmt, struct tm *__tp,
9595  __locale_t __loc) throw ();
9596 
9597 
9598 
9599 
9600 
9601 
9602 extern struct tm *gmtime (const time_t *__timer) throw ();
9603 
9604 
9605 
9606 extern struct tm *localtime (const time_t *__timer) throw ();
9607 
9608 
9609 
9610 
9611 
9612 extern struct tm *gmtime_r (const time_t *__restrict __timer,
9613  struct tm *__restrict __tp) throw ();
9614 
9615 
9616 
9617 extern struct tm *localtime_r (const time_t *__restrict __timer,
9618  struct tm *__restrict __tp) throw ();
9619 
9620 
9621 
9622 
9623 
9624 extern char *asctime (const struct tm *__tp) throw ();
9625 
9626 
9627 extern char *ctime (const time_t *__timer) throw ();
9628 
9629 
9630 
9631 
9632 
9633 
9634 
9635 extern char *asctime_r (const struct tm *__restrict __tp,
9636  char *__restrict __buf) throw ();
9637 
9638 
9639 extern char *ctime_r (const time_t *__restrict __timer,
9640  char *__restrict __buf) throw ();
9641 
9642 
9643 
9644 
9645 extern char *__tzname[2];
9646 extern int __daylight;
9647 extern long int __timezone;
9648 
9649 
9650 
9651 
9652 extern char *tzname[2];
9653 
9654 
9655 
9656 extern void tzset (void) throw ();
9657 
9658 
9659 
9660 extern int daylight;
9661 extern long int timezone;
9662 
9663 
9664 
9665 
9666 
9667 extern int stime (const time_t *__when) throw ();
9668 # 319 "/usr/include/time.h" 3 4
9669 extern time_t timegm (struct tm *__tp) throw ();
9670 
9671 
9672 extern time_t timelocal (struct tm *__tp) throw ();
9673 
9674 
9675 extern int dysize (int __year) throw () __attribute__ ((__const__));
9676 # 334 "/usr/include/time.h" 3 4
9677 extern int nanosleep (const struct timespec *__requested_time,
9678  struct timespec *__remaining);
9679 
9680 
9681 
9682 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
9683 
9684 
9685 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
9686 
9687 
9688 extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
9689  throw ();
9690 
9691 
9692 
9693 
9694 
9695 
9696 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
9697  const struct timespec *__req,
9698  struct timespec *__rem);
9699 
9700 
9701 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
9702 
9703 
9704 
9705 
9706 extern int timer_create (clockid_t __clock_id,
9707  struct sigevent *__restrict __evp,
9708  timer_t *__restrict __timerid) throw ();
9709 
9710 
9711 extern int timer_delete (timer_t __timerid) throw ();
9712 
9713 
9714 extern int timer_settime (timer_t __timerid, int __flags,
9715  const struct itimerspec *__restrict __value,
9716  struct itimerspec *__restrict __ovalue) throw ();
9717 
9718 
9719 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
9720  throw ();
9721 
9722 
9723 extern int timer_getoverrun (timer_t __timerid) throw ();
9724 
9725 
9726 
9727 
9728 
9729 extern int timespec_get (struct timespec *__ts, int __base)
9730  throw () __attribute__ ((__nonnull__ (1)));
9731 # 403 "/usr/include/time.h" 3 4
9732 extern int getdate_err;
9733 # 412 "/usr/include/time.h" 3 4
9734 extern struct tm *getdate (const char *__string);
9735 # 426 "/usr/include/time.h" 3 4
9736 extern int getdate_r (const char *__restrict __string,
9737  struct tm *__restrict __resbufp);
9738 
9739 
9740 }
9741 # 25 "/usr/include/pthread.h" 2 3 4
9742 
9743 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
9744 # 21 "/usr/include/bits/pthreadtypes.h" 3 4
9745 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9746 # 22 "/usr/include/bits/pthreadtypes.h" 2 3 4
9747 # 60 "/usr/include/bits/pthreadtypes.h" 3 4
9748 typedef unsigned long int pthread_t;
9749 
9750 
9751 union pthread_attr_t
9752 {
9753  char __size[56];
9754  long int __align;
9755 };
9756 
9757 typedef union pthread_attr_t pthread_attr_t;
9758 
9759 
9760 
9761 
9762 
9763 typedef struct __pthread_internal_list
9764 {
9765  struct __pthread_internal_list *__prev;
9766  struct __pthread_internal_list *__next;
9768 # 90 "/usr/include/bits/pthreadtypes.h" 3 4
9769 typedef union
9770 {
9771  struct __pthread_mutex_s
9772  {
9773  int __lock;
9774  unsigned int __count;
9775  int __owner;
9776 
9777  unsigned int __nusers;
9778 
9779 
9780 
9781  int __kind;
9782 
9783  short __spins;
9784  short __elision;
9785  __pthread_list_t __list;
9786 # 124 "/usr/include/bits/pthreadtypes.h" 3 4
9787  } __data;
9788  char __size[40];
9789  long int __align;
9790 } pthread_mutex_t;
9791 
9792 typedef union
9793 {
9794  char __size[4];
9795  int __align;
9797 
9798 
9799 
9800 
9801 typedef union
9802 {
9803  struct
9804  {
9805  int __lock;
9806  unsigned int __futex;
9807  __extension__ unsigned long long int __total_seq;
9808  __extension__ unsigned long long int __wakeup_seq;
9809  __extension__ unsigned long long int __woken_seq;
9810  void *__mutex;
9811  unsigned int __nwaiters;
9812  unsigned int __broadcast_seq;
9813  } __data;
9814  char __size[48];
9815  __extension__ long long int __align;
9816 } pthread_cond_t;
9817 
9818 typedef union
9819 {
9820  char __size[4];
9821  int __align;
9823 
9824 
9825 
9826 typedef unsigned int pthread_key_t;
9827 
9828 
9829 
9830 typedef int pthread_once_t;
9831 
9832 
9833 
9834 
9835 
9836 typedef union
9837 {
9838 
9839  struct
9840  {
9841  int __lock;
9842  unsigned int __nr_readers;
9843  unsigned int __readers_wakeup;
9844  unsigned int __writer_wakeup;
9845  unsigned int __nr_readers_queued;
9846  unsigned int __nr_writers_queued;
9847  int __writer;
9848  int __shared;
9849  unsigned long int __pad1;
9850  unsigned long int __pad2;
9851 
9852 
9853  unsigned int __flags;
9854 
9855  } __data;
9856 # 211 "/usr/include/bits/pthreadtypes.h" 3 4
9857  char __size[56];
9858  long int __align;
9860 
9861 typedef union
9862 {
9863  char __size[8];
9864  long int __align;
9866 
9867 
9868 
9869 
9870 
9871 typedef volatile int pthread_spinlock_t;
9872 
9873 
9874 
9875 
9876 typedef union
9877 {
9878  char __size[32];
9879  long int __align;
9881 
9882 typedef union
9883 {
9884  char __size[4];
9885  int __align;
9887 # 27 "/usr/include/pthread.h" 2 3 4
9888 # 1 "/usr/include/bits/setjmp.h" 1 3 4
9889 # 26 "/usr/include/bits/setjmp.h" 3 4
9890 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9891 # 27 "/usr/include/bits/setjmp.h" 2 3 4
9892 
9893 
9894 
9895 
9896 typedef long int __jmp_buf[8];
9897 # 28 "/usr/include/pthread.h" 2 3 4
9898 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9899 # 29 "/usr/include/pthread.h" 2 3 4
9900 
9901 
9902 
9903 enum
9904 {
9905  PTHREAD_CREATE_JOINABLE,
9906 
9907  PTHREAD_CREATE_DETACHED
9908 
9909 };
9910 
9911 
9912 
9913 enum
9914 {
9915  PTHREAD_MUTEX_TIMED_NP,
9916  PTHREAD_MUTEX_RECURSIVE_NP,
9917  PTHREAD_MUTEX_ERRORCHECK_NP,
9918  PTHREAD_MUTEX_ADAPTIVE_NP
9919 
9920  ,
9921  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
9922  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
9923  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
9924  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
9925 
9926 
9927 
9928  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
9929 
9930 };
9931 
9932 
9933 
9934 
9935 enum
9936 {
9937  PTHREAD_MUTEX_STALLED,
9938  PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
9939  PTHREAD_MUTEX_ROBUST,
9940  PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
9941 };
9942 
9943 
9944 
9945 
9946 
9947 enum
9948 {
9949  PTHREAD_PRIO_NONE,
9950  PTHREAD_PRIO_INHERIT,
9951  PTHREAD_PRIO_PROTECT
9952 };
9953 # 125 "/usr/include/pthread.h" 3 4
9954 enum
9955 {
9956  PTHREAD_RWLOCK_PREFER_READER_NP,
9957  PTHREAD_RWLOCK_PREFER_WRITER_NP,
9958  PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
9959  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
9960 };
9961 # 166 "/usr/include/pthread.h" 3 4
9962 enum
9963 {
9964  PTHREAD_INHERIT_SCHED,
9965 
9966  PTHREAD_EXPLICIT_SCHED
9967 
9968 };
9969 
9970 
9971 
9972 enum
9973 {
9974  PTHREAD_SCOPE_SYSTEM,
9975 
9976  PTHREAD_SCOPE_PROCESS
9977 
9978 };
9979 
9980 
9981 
9982 enum
9983 {
9984  PTHREAD_PROCESS_PRIVATE,
9985 
9986  PTHREAD_PROCESS_SHARED
9987 
9988 };
9989 # 201 "/usr/include/pthread.h" 3 4
9991 {
9992  void (*__routine) (void *);
9993  void *__arg;
9994  int __canceltype;
9995  struct _pthread_cleanup_buffer *__prev;
9996 };
9997 
9998 
9999 enum
10000 {
10001  PTHREAD_CANCEL_ENABLE,
10002 
10003  PTHREAD_CANCEL_DISABLE
10004 
10005 };
10006 enum
10007 {
10008  PTHREAD_CANCEL_DEFERRED,
10009 
10010  PTHREAD_CANCEL_ASYNCHRONOUS
10011 
10012 };
10013 # 239 "/usr/include/pthread.h" 3 4
10014 extern "C" {
10015 
10016 
10017 
10018 
10019 extern int pthread_create (pthread_t *__restrict __newthread,
10020  const pthread_attr_t *__restrict __attr,
10021  void *(*__start_routine) (void *),
10022  void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
10023 
10024 
10025 
10026 
10027 
10028 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
10029 
10030 
10031 
10032 
10033 
10034 
10035 
10036 extern int pthread_join (pthread_t __th, void **__thread_return);
10037 
10038 
10039 
10040 
10041 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
10042 
10043 
10044 
10045 
10046 
10047 
10048 
10049 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
10050  const struct timespec *__abstime);
10051 
10052 
10053 
10054 
10055 
10056 
10057 extern int pthread_detach (pthread_t __th) throw ();
10058 
10059 
10060 
10061 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
10062 
10063 
10064 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
10065  throw () __attribute__ ((__const__));
10066 
10067 
10068 
10069 
10070 
10071 
10072 
10073 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
10074 
10075 
10076 extern int pthread_attr_destroy (pthread_attr_t *__attr)
10077  throw () __attribute__ ((__nonnull__ (1)));
10078 
10079 
10080 extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
10081  int *__detachstate)
10082  throw () __attribute__ ((__nonnull__ (1, 2)));
10083 
10084 
10085 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
10086  int __detachstate)
10087  throw () __attribute__ ((__nonnull__ (1)));
10088 
10089 
10090 
10091 extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
10092  size_t *__guardsize)
10093  throw () __attribute__ ((__nonnull__ (1, 2)));
10094 
10095 
10096 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
10097  size_t __guardsize)
10098  throw () __attribute__ ((__nonnull__ (1)));
10099 
10100 
10101 
10102 extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
10103  struct sched_param *__restrict __param)
10104  throw () __attribute__ ((__nonnull__ (1, 2)));
10105 
10106 
10107 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
10108  const struct sched_param *__restrict
10109  __param) throw () __attribute__ ((__nonnull__ (1, 2)));
10110 
10111 
10112 extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
10113  __attr, int *__restrict __policy)
10114  throw () __attribute__ ((__nonnull__ (1, 2)));
10115 
10116 
10117 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
10118  throw () __attribute__ ((__nonnull__ (1)));
10119 
10120 
10121 extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
10122  __attr, int *__restrict __inherit)
10123  throw () __attribute__ ((__nonnull__ (1, 2)));
10124 
10125 
10126 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
10127  int __inherit)
10128  throw () __attribute__ ((__nonnull__ (1)));
10129 
10130 
10131 
10132 extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
10133  int *__restrict __scope)
10134  throw () __attribute__ ((__nonnull__ (1, 2)));
10135 
10136 
10137 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
10138  throw () __attribute__ ((__nonnull__ (1)));
10139 
10140 
10141 extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
10142  __attr, void **__restrict __stackaddr)
10143  throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
10144 
10145 
10146 
10147 
10148 
10149 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
10150  void *__stackaddr)
10151  throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
10152 
10153 
10154 extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
10155  __attr, size_t *__restrict __stacksize)
10156  throw () __attribute__ ((__nonnull__ (1, 2)));
10157 
10158 
10159 
10160 
10161 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
10162  size_t __stacksize)
10163  throw () __attribute__ ((__nonnull__ (1)));
10164 
10165 
10166 
10167 extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
10168  void **__restrict __stackaddr,
10169  size_t *__restrict __stacksize)
10170  throw () __attribute__ ((__nonnull__ (1, 2, 3)));
10171 
10172 
10173 
10174 
10175 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
10176  size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
10177 
10178 
10179 
10180 
10181 
10182 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
10183  size_t __cpusetsize,
10184  const cpu_set_t *__cpuset)
10185  throw () __attribute__ ((__nonnull__ (1, 3)));
10186 
10187 
10188 
10189 extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
10190  size_t __cpusetsize,
10191  cpu_set_t *__cpuset)
10192  throw () __attribute__ ((__nonnull__ (1, 3)));
10193 
10194 
10195 extern int pthread_getattr_default_np (pthread_attr_t *__attr)
10196  throw () __attribute__ ((__nonnull__ (1)));
10197 
10198 
10199 
10200 extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
10201  throw () __attribute__ ((__nonnull__ (1)));
10202 
10203 
10204 
10205 
10206 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
10207  throw () __attribute__ ((__nonnull__ (2)));
10208 
10209 
10210 
10211 
10212 
10213 
10214 
10215 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
10216  const struct sched_param *__param)
10217  throw () __attribute__ ((__nonnull__ (3)));
10218 
10219 
10220 extern int pthread_getschedparam (pthread_t __target_thread,
10221  int *__restrict __policy,
10222  struct sched_param *__restrict __param)
10223  throw () __attribute__ ((__nonnull__ (2, 3)));
10224 
10225 
10226 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
10227  throw ();
10228 
10229 
10230 
10231 
10232 extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
10233  size_t __buflen)
10234  throw () __attribute__ ((__nonnull__ (2)));
10235 
10236 
10237 extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
10238  throw () __attribute__ ((__nonnull__ (2)));
10239 
10240 
10241 
10242 
10243 
10244 extern int pthread_getconcurrency (void) throw ();
10245 
10246 
10247 extern int pthread_setconcurrency (int __level) throw ();
10248 
10249 
10250 
10251 
10252 
10253 
10254 
10255 extern int pthread_yield (void) throw ();
10256 
10257 
10258 
10259 
10260 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
10261  const cpu_set_t *__cpuset)
10262  throw () __attribute__ ((__nonnull__ (3)));
10263 
10264 
10265 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
10266  cpu_set_t *__cpuset)
10267  throw () __attribute__ ((__nonnull__ (3)));
10268 # 505 "/usr/include/pthread.h" 3 4
10269 extern int pthread_once (pthread_once_t *__once_control,
10270  void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
10271 # 517 "/usr/include/pthread.h" 3 4
10272 extern int pthread_setcancelstate (int __state, int *__oldstate);
10273 
10274 
10275 
10276 extern int pthread_setcanceltype (int __type, int *__oldtype);
10277 
10278 
10279 extern int pthread_cancel (pthread_t __th);
10280 
10281 
10282 
10283 
10284 extern void pthread_testcancel (void);
10285 
10286 
10287 
10288 
10289 typedef struct
10290 {
10291  struct
10292  {
10293  __jmp_buf __cancel_jmp_buf;
10294  int __mask_was_saved;
10295  } __cancel_jmp_buf[1];
10296  void *__pad[4];
10297 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
10298 # 551 "/usr/include/pthread.h" 3 4
10300 {
10301  void (*__cancel_routine) (void *);
10302  void *__cancel_arg;
10303  int __do_it;
10304  int __cancel_type;
10305 };
10306 
10307 
10308 
10309 
10311 {
10312  void (*__cancel_routine) (void *);
10313  void *__cancel_arg;
10314  int __do_it;
10315  int __cancel_type;
10316 
10317  public:
10318  __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
10319  : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
10320  ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
10321  void __setdoit (int __newval) { __do_it = __newval; }
10322  void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
10323  &__cancel_type); }
10324  void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
10325 };
10326 # 753 "/usr/include/pthread.h" 3 4
10327 struct __jmp_buf_tag;
10328 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
10329 
10330 
10331 
10332 
10333 
10334 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
10335  const pthread_mutexattr_t *__mutexattr)
10336  throw () __attribute__ ((__nonnull__ (1)));
10337 
10338 
10339 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
10340  throw () __attribute__ ((__nonnull__ (1)));
10341 
10342 
10343 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
10344  throw () __attribute__ ((__nonnull__ (1)));
10345 
10346 
10347 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
10348  throw () __attribute__ ((__nonnull__ (1)));
10349 
10350 
10351 
10352 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
10353  const struct timespec *__restrict
10354  __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
10355 
10356 
10357 
10358 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
10359  throw () __attribute__ ((__nonnull__ (1)));
10360 
10361 
10362 
10363 extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
10364  __restrict __mutex,
10365  int *__restrict __prioceiling)
10366  throw () __attribute__ ((__nonnull__ (1, 2)));
10367 
10368 
10369 
10370 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
10371  int __prioceiling,
10372  int *__restrict __old_ceiling)
10373  throw () __attribute__ ((__nonnull__ (1, 3)));
10374 
10375 
10376 
10377 
10378 extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
10379  throw () __attribute__ ((__nonnull__ (1)));
10380 
10381 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
10382  throw () __attribute__ ((__nonnull__ (1)));
10383 # 817 "/usr/include/pthread.h" 3 4
10384 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
10385  throw () __attribute__ ((__nonnull__ (1)));
10386 
10387 
10388 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
10389  throw () __attribute__ ((__nonnull__ (1)));
10390 
10391 
10392 extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
10393  __restrict __attr,
10394  int *__restrict __pshared)
10395  throw () __attribute__ ((__nonnull__ (1, 2)));
10396 
10397 
10398 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
10399  int __pshared)
10400  throw () __attribute__ ((__nonnull__ (1)));
10401 
10402 
10403 
10404 extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
10405  __attr, int *__restrict __kind)
10406  throw () __attribute__ ((__nonnull__ (1, 2)));
10407 
10408 
10409 
10410 
10411 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
10412  throw () __attribute__ ((__nonnull__ (1)));
10413 
10414 
10415 
10416 extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
10417  __restrict __attr,
10418  int *__restrict __protocol)
10419  throw () __attribute__ ((__nonnull__ (1, 2)));
10420 
10421 
10422 
10423 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
10424  int __protocol)
10425  throw () __attribute__ ((__nonnull__ (1)));
10426 
10427 
10428 extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
10429  __restrict __attr,
10430  int *__restrict __prioceiling)
10431  throw () __attribute__ ((__nonnull__ (1, 2)));
10432 
10433 
10434 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
10435  int __prioceiling)
10436  throw () __attribute__ ((__nonnull__ (1)));
10437 
10438 
10439 
10440 extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
10441  int *__robustness)
10442  throw () __attribute__ ((__nonnull__ (1, 2)));
10443 
10444 extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
10445  int *__robustness)
10446  throw () __attribute__ ((__nonnull__ (1, 2)));
10447 
10448 
10449 
10450 extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
10451  int __robustness)
10452  throw () __attribute__ ((__nonnull__ (1)));
10453 
10454 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
10455  int __robustness)
10456  throw () __attribute__ ((__nonnull__ (1)));
10457 # 899 "/usr/include/pthread.h" 3 4
10458 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
10459  const pthread_rwlockattr_t *__restrict
10460  __attr) throw () __attribute__ ((__nonnull__ (1)));
10461 
10462 
10463 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
10464  throw () __attribute__ ((__nonnull__ (1)));
10465 
10466 
10467 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
10468  throw () __attribute__ ((__nonnull__ (1)));
10469 
10470 
10471 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
10472  throw () __attribute__ ((__nonnull__ (1)));
10473 
10474 
10475 
10476 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
10477  const struct timespec *__restrict
10478  __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
10479 
10480 
10481 
10482 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
10483  throw () __attribute__ ((__nonnull__ (1)));
10484 
10485 
10486 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
10487  throw () __attribute__ ((__nonnull__ (1)));
10488 
10489 
10490 
10491 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
10492  const struct timespec *__restrict
10493  __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
10494 
10495 
10496 
10497 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
10498  throw () __attribute__ ((__nonnull__ (1)));
10499 
10500 
10501 
10502 
10503 
10504 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
10505  throw () __attribute__ ((__nonnull__ (1)));
10506 
10507 
10508 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
10509  throw () __attribute__ ((__nonnull__ (1)));
10510 
10511 
10512 extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
10513  __restrict __attr,
10514  int *__restrict __pshared)
10515  throw () __attribute__ ((__nonnull__ (1, 2)));
10516 
10517 
10518 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
10519  int __pshared)
10520  throw () __attribute__ ((__nonnull__ (1)));
10521 
10522 
10523 extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
10524  __restrict __attr,
10525  int *__restrict __pref)
10526  throw () __attribute__ ((__nonnull__ (1, 2)));
10527 
10528 
10529 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
10530  int __pref) throw () __attribute__ ((__nonnull__ (1)));
10531 
10532 
10533 
10534 
10535 
10536 
10537 
10538 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
10539  const pthread_condattr_t *__restrict __cond_attr)
10540  throw () __attribute__ ((__nonnull__ (1)));
10541 
10542 
10543 extern int pthread_cond_destroy (pthread_cond_t *__cond)
10544  throw () __attribute__ ((__nonnull__ (1)));
10545 
10546 
10547 extern int pthread_cond_signal (pthread_cond_t *__cond)
10548  throw () __attribute__ ((__nonnull__ (1)));
10549 
10550 
10551 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
10552  throw () __attribute__ ((__nonnull__ (1)));
10553 
10554 
10555 
10556 
10557 
10558 
10559 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
10560  pthread_mutex_t *__restrict __mutex)
10561  __attribute__ ((__nonnull__ (1, 2)));
10562 # 1011 "/usr/include/pthread.h" 3 4
10563 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
10564  pthread_mutex_t *__restrict __mutex,
10565  const struct timespec *__restrict __abstime)
10566  __attribute__ ((__nonnull__ (1, 2, 3)));
10567 
10568 
10569 
10570 
10571 extern int pthread_condattr_init (pthread_condattr_t *__attr)
10572  throw () __attribute__ ((__nonnull__ (1)));
10573 
10574 
10575 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
10576  throw () __attribute__ ((__nonnull__ (1)));
10577 
10578 
10579 extern int pthread_condattr_getpshared (const pthread_condattr_t *
10580  __restrict __attr,
10581  int *__restrict __pshared)
10582  throw () __attribute__ ((__nonnull__ (1, 2)));
10583 
10584 
10585 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
10586  int __pshared) throw () __attribute__ ((__nonnull__ (1)));
10587 
10588 
10589 
10590 extern int pthread_condattr_getclock (const pthread_condattr_t *
10591  __restrict __attr,
10592  __clockid_t *__restrict __clock_id)
10593  throw () __attribute__ ((__nonnull__ (1, 2)));
10594 
10595 
10596 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
10597  __clockid_t __clock_id)
10598  throw () __attribute__ ((__nonnull__ (1)));
10599 # 1055 "/usr/include/pthread.h" 3 4
10600 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
10601  throw () __attribute__ ((__nonnull__ (1)));
10602 
10603 
10604 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
10605  throw () __attribute__ ((__nonnull__ (1)));
10606 
10607 
10608 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
10609  throw () __attribute__ ((__nonnull__ (1)));
10610 
10611 
10612 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
10613  throw () __attribute__ ((__nonnull__ (1)));
10614 
10615 
10616 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
10617  throw () __attribute__ ((__nonnull__ (1)));
10618 
10619 
10620 
10621 
10622 
10623 
10624 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
10625  const pthread_barrierattr_t *__restrict
10626  __attr, unsigned int __count)
10627  throw () __attribute__ ((__nonnull__ (1)));
10628 
10629 
10630 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
10631  throw () __attribute__ ((__nonnull__ (1)));
10632 
10633 
10634 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
10635  throw () __attribute__ ((__nonnull__ (1)));
10636 
10637 
10638 
10639 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
10640  throw () __attribute__ ((__nonnull__ (1)));
10641 
10642 
10643 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
10644  throw () __attribute__ ((__nonnull__ (1)));
10645 
10646 
10647 extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
10648  __restrict __attr,
10649  int *__restrict __pshared)
10650  throw () __attribute__ ((__nonnull__ (1, 2)));
10651 
10652 
10653 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
10654  int __pshared)
10655  throw () __attribute__ ((__nonnull__ (1)));
10656 # 1122 "/usr/include/pthread.h" 3 4
10657 extern int pthread_key_create (pthread_key_t *__key,
10658  void (*__destr_function) (void *))
10659  throw () __attribute__ ((__nonnull__ (1)));
10660 
10661 
10662 extern int pthread_key_delete (pthread_key_t __key) throw ();
10663 
10664 
10665 extern void *pthread_getspecific (pthread_key_t __key) throw ();
10666 
10667 
10668 extern int pthread_setspecific (pthread_key_t __key,
10669  const void *__pointer) throw () ;
10670 
10671 
10672 
10673 
10674 extern int pthread_getcpuclockid (pthread_t __thread_id,
10675  __clockid_t *__clock_id)
10676  throw () __attribute__ ((__nonnull__ (2)));
10677 # 1156 "/usr/include/pthread.h" 3 4
10678 extern int pthread_atfork (void (*__prepare) (void),
10679  void (*__parent) (void),
10680  void (*__child) (void)) throw ();
10681 # 1170 "/usr/include/pthread.h" 3 4
10682 }
10683 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 2 3
10684 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10685 typedef pthread_t __gthread_t;
10686 typedef pthread_key_t __gthread_key_t;
10687 typedef pthread_once_t __gthread_once_t;
10691 typedef struct timespec __gthread_time_t;
10692 # 101 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10693 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
10694 static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
10695 static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
10696 
10697 static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
10698 static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join")));
10699 static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal")));
10700 static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self")));
10701 static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach")));
10702 
10703 static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
10704 
10705 static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield")));
10706 
10707 static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
10708 static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
10709 
10710 static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock")));
10711 
10712 static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
10713 static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
10714 static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy")));
10715 
10716 static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init")));
10717 static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast")));
10718 static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal")));
10719 static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait")));
10720 static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait")));
10721 static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy")));
10722 
10723 static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
10724 static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
10725 static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
10726 static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
10727 static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
10728 # 236 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10729 static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create")));
10730 # 246 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10731 static inline int
10732 __gthread_active_p (void)
10733 {
10734  static void *const __gthread_active_ptr
10735  = __extension__ (void *) &__gthrw___pthread_key_create;
10736  return __gthread_active_ptr != 0;
10737 }
10738 # 658 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10739 static inline int
10740 __gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
10741  void *__args)
10742 {
10743  return __gthrw_pthread_create (__threadid, __null, __func, __args);
10744 }
10745 
10746 static inline int
10747 __gthread_join (__gthread_t __threadid, void **__value_ptr)
10748 {
10749  return __gthrw_pthread_join (__threadid, __value_ptr);
10750 }
10751 
10752 static inline int
10753 __gthread_detach (__gthread_t __threadid)
10754 {
10755  return __gthrw_pthread_detach (__threadid);
10756 }
10757 
10758 static inline int
10759 __gthread_equal (__gthread_t __t1, __gthread_t __t2)
10760 {
10761  return __gthrw_pthread_equal (__t1, __t2);
10762 }
10763 
10764 static inline __gthread_t
10765 __gthread_self (void)
10766 {
10767  return __gthrw_pthread_self ();
10768 }
10769 
10770 static inline int
10771 __gthread_yield (void)
10772 {
10773  return __gthrw_sched_yield ();
10774 }
10775 
10776 static inline int
10777 __gthread_once (__gthread_once_t *__once, void (*__func) (void))
10778 {
10779  if (__gthread_active_p ())
10780  return __gthrw_pthread_once (__once, __func);
10781  else
10782  return -1;
10783 }
10784 
10785 static inline int
10786 __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
10787 {
10788  return __gthrw_pthread_key_create (__key, __dtor);
10789 }
10790 
10791 static inline int
10792 __gthread_key_delete (__gthread_key_t __key)
10793 {
10794  return __gthrw_pthread_key_delete (__key);
10795 }
10796 
10797 static inline void *
10798 __gthread_getspecific (__gthread_key_t __key)
10799 {
10800  return __gthrw_pthread_getspecific (__key);
10801 }
10802 
10803 static inline int
10804 __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
10805 {
10806  return __gthrw_pthread_setspecific (__key, __ptr);
10807 }
10808 
10809 static inline void
10810 __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
10811 {
10812  if (__gthread_active_p ())
10813  __gthrw_pthread_mutex_init (__mutex, __null);
10814 }
10815 
10816 static inline int
10817 __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
10818 {
10819  if (__gthread_active_p ())
10820  return __gthrw_pthread_mutex_destroy (__mutex);
10821  else
10822  return 0;
10823 }
10824 
10825 static inline int
10826 __gthread_mutex_lock (__gthread_mutex_t *__mutex)
10827 {
10828  if (__gthread_active_p ())
10829  return __gthrw_pthread_mutex_lock (__mutex);
10830  else
10831  return 0;
10832 }
10833 
10834 static inline int
10835 __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
10836 {
10837  if (__gthread_active_p ())
10838  return __gthrw_pthread_mutex_trylock (__mutex);
10839  else
10840  return 0;
10841 }
10842 
10843 
10844 static inline int
10845 __gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
10846  const __gthread_time_t *__abs_timeout)
10847 {
10848  if (__gthread_active_p ())
10849  return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout);
10850  else
10851  return 0;
10852 }
10853 
10854 
10855 static inline int
10856 __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
10857 {
10858  if (__gthread_active_p ())
10859  return __gthrw_pthread_mutex_unlock (__mutex);
10860  else
10861  return 0;
10862 }
10863 # 807 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10864 static inline int
10865 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
10866 {
10867  return __gthread_mutex_lock (__mutex);
10868 }
10869 
10870 static inline int
10871 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
10872 {
10873  return __gthread_mutex_trylock (__mutex);
10874 }
10875 
10876 
10877 static inline int
10878 __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
10879  const __gthread_time_t *__abs_timeout)
10880 {
10881  return __gthread_mutex_timedlock (__mutex, __abs_timeout);
10882 }
10883 
10884 
10885 static inline int
10886 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
10887 {
10888  return __gthread_mutex_unlock (__mutex);
10889 }
10890 
10891 static inline int
10892 __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
10893 {
10894  return __gthread_mutex_destroy (__mutex);
10895 }
10896 # 849 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr-default.h" 3
10897 static inline int
10898 __gthread_cond_broadcast (__gthread_cond_t *__cond)
10899 {
10900  return __gthrw_pthread_cond_broadcast (__cond);
10901 }
10902 
10903 static inline int
10904 __gthread_cond_signal (__gthread_cond_t *__cond)
10905 {
10906  return __gthrw_pthread_cond_signal (__cond);
10907 }
10908 
10909 static inline int
10910 __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
10911 {
10912  return __gthrw_pthread_cond_wait (__cond, __mutex);
10913 }
10914 
10915 static inline int
10916 __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
10917  const __gthread_time_t *__abs_timeout)
10918 {
10919  return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout);
10920 }
10921 
10922 static inline int
10923 __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
10924  __gthread_recursive_mutex_t *__mutex)
10925 {
10926  return __gthread_cond_wait (__cond, __mutex);
10927 }
10928 
10929 static inline int
10930 __gthread_cond_destroy (__gthread_cond_t* __cond)
10931 {
10932  return __gthrw_pthread_cond_destroy (__cond);
10933 }
10934 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/gthr.h" 2 3
10935 
10936 
10937 #pragma GCC visibility pop
10938 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 2 3
10939 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/atomic_word.h" 1 3
10940 # 32 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/atomic_word.h" 3
10941 typedef int _Atomic_word;
10942 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 2 3
10943 
10944 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
10945 {
10946 
10947 
10948 
10949 
10950 
10951 
10952 
10953  static inline _Atomic_word
10954  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
10955  { return __atomic_fetch_add(__mem, __val, 4); }
10956 
10957  static inline void
10958  __atomic_add(volatile _Atomic_word* __mem, int __val)
10959  { __atomic_fetch_add(__mem, __val, 4); }
10960 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/atomicity.h" 3
10961  static inline _Atomic_word
10962  __exchange_and_add_single(_Atomic_word* __mem, int __val)
10963  {
10964  _Atomic_word __result = *__mem;
10965  *__mem += __val;
10966  return __result;
10967  }
10968 
10969  static inline void
10970  __atomic_add_single(_Atomic_word* __mem, int __val)
10971  { *__mem += __val; }
10972 
10973  static inline _Atomic_word
10974  __attribute__ ((__unused__))
10975  __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
10976  {
10977 
10978  if (__gthread_active_p())
10979  return __exchange_and_add(__mem, __val);
10980  else
10981  return __exchange_and_add_single(__mem, __val);
10982 
10983 
10984 
10985  }
10986 
10987  static inline void
10988  __attribute__ ((__unused__))
10989  __atomic_add_dispatch(_Atomic_word* __mem, int __val)
10990  {
10991 
10992  if (__gthread_active_p())
10993  __atomic_add(__mem, __val);
10994  else
10995  __atomic_add_single(__mem, __val);
10996 
10997 
10998 
10999  }
11000 
11001 
11002 }
11003 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
11004 
11005 
11006 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/initializer_list" 1 3
11007 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/initializer_list" 3
11008 
11009 
11010 
11011 
11012 
11013 #pragma GCC visibility push(default)
11014 
11015 
11016 
11017 namespace std
11018 {
11019 
11020  template<class _E>
11021  class initializer_list
11022  {
11023  public:
11024  typedef _E value_type;
11025  typedef const _E& reference;
11026  typedef const _E& const_reference;
11027  typedef size_t size_type;
11028  typedef const _E* iterator;
11029  typedef const _E* const_iterator;
11030 
11031  private:
11032  iterator _M_array;
11033  size_type _M_len;
11034 
11035 
11036  constexpr initializer_list(const_iterator __a, size_type __l)
11037  : _M_array(__a), _M_len(__l) { }
11038 
11039  public:
11040  constexpr initializer_list() noexcept
11041  : _M_array(0), _M_len(0) { }
11042 
11043 
11044  constexpr size_type
11045  size() const noexcept { return _M_len; }
11046 
11047 
11048  constexpr const_iterator
11049  begin() const noexcept { return _M_array; }
11050 
11051 
11052  constexpr const_iterator
11053  end() const noexcept { return begin() + size(); }
11054  };
11055 
11056 
11057 
11058 
11059 
11060 
11061  template<class _Tp>
11062  constexpr const _Tp*
11063  begin(initializer_list<_Tp> __ils) noexcept
11064  { return __ils.begin(); }
11065 
11066 
11067 
11068 
11069 
11070 
11071  template<class _Tp>
11072  constexpr const _Tp*
11073  end(initializer_list<_Tp> __ils) noexcept
11074  { return __ils.end(); }
11075 }
11076 
11077 #pragma GCC visibility pop
11078 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
11079 
11080 
11081 namespace std __attribute__ ((__visibility__ ("default")))
11082 {
11083 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11084  template<typename _CharT, typename _Traits, typename _Alloc>
11085  class basic_string
11086  {
11087  typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
11088 
11089 
11090  public:
11091  typedef _Traits traits_type;
11092  typedef typename _Traits::char_type value_type;
11093  typedef _Alloc allocator_type;
11094  typedef typename _CharT_alloc_type::size_type size_type;
11095  typedef typename _CharT_alloc_type::difference_type difference_type;
11096  typedef typename _CharT_alloc_type::reference reference;
11097  typedef typename _CharT_alloc_type::const_reference const_reference;
11098  typedef typename _CharT_alloc_type::pointer pointer;
11099  typedef typename _CharT_alloc_type::const_pointer const_pointer;
11100  typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
11101  typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
11102  const_iterator;
11103  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
11104  typedef std::reverse_iterator<iterator> reverse_iterator;
11105 
11106  private:
11107 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11108  struct _Rep_base
11109  {
11110  size_type _M_length;
11111  size_type _M_capacity;
11112  _Atomic_word _M_refcount;
11113  };
11114 
11115  struct _Rep : _Rep_base
11116  {
11117 
11118  typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
11119 # 173 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11120  static const size_type _S_max_size;
11121  static const _CharT _S_terminal;
11122 
11123 
11124 
11125  static size_type _S_empty_rep_storage[];
11126 
11127  static _Rep&
11128  _S_empty_rep() noexcept
11129  {
11130 
11131 
11132 
11133  void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
11134  return *reinterpret_cast<_Rep*>(__p);
11135  }
11136 
11137  bool
11138  _M_is_leaked() const noexcept
11139  { return this->_M_refcount < 0; }
11140 
11141  bool
11142  _M_is_shared() const noexcept
11143  { return this->_M_refcount > 0; }
11144 
11145  void
11146  _M_set_leaked() noexcept
11147  { this->_M_refcount = -1; }
11148 
11149  void
11150  _M_set_sharable() noexcept
11151  { this->_M_refcount = 0; }
11152 
11153  void
11154  _M_set_length_and_sharable(size_type __n) noexcept
11155  {
11156 
11157  if (__builtin_expect(this != &_S_empty_rep(), false))
11158 
11159  {
11160  this->_M_set_sharable();
11161  this->_M_length = __n;
11162  traits_type::assign(this->_M_refdata()[__n], _S_terminal);
11163 
11164 
11165  }
11166  }
11167 
11168  _CharT*
11169  _M_refdata() throw()
11170  { return reinterpret_cast<_CharT*>(this + 1); }
11171 
11172  _CharT*
11173  _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
11174  {
11175  return (!_M_is_leaked() && __alloc1 == __alloc2)
11176  ? _M_refcopy() : _M_clone(__alloc1);
11177  }
11178 
11179 
11180  static _Rep*
11181  _S_create(size_type, size_type, const _Alloc&);
11182 
11183  void
11184  _M_dispose(const _Alloc& __a) noexcept
11185  {
11186 
11187  if (__builtin_expect(this != &_S_empty_rep(), false))
11188 
11189  {
11190 
11191  ;
11192  if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
11193  -1) <= 0)
11194  {
11195  ;
11196  _M_destroy(__a);
11197  }
11198  }
11199  }
11200 
11201  void
11202  _M_destroy(const _Alloc&) throw();
11203 
11204  _CharT*
11205  _M_refcopy() throw()
11206  {
11207 
11208  if (__builtin_expect(this != &_S_empty_rep(), false))
11209 
11210  __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
11211  return _M_refdata();
11212  }
11213 
11214  _CharT*
11215  _M_clone(const _Alloc&, size_type __res = 0);
11216  };
11217 
11218 
11219  struct _Alloc_hider : _Alloc
11220  {
11221  _Alloc_hider(_CharT* __dat, const _Alloc& __a) noexcept
11222  : _Alloc(__a), _M_p(__dat) { }
11223 
11224  _CharT* _M_p;
11225  };
11226 
11227  public:
11228 
11229 
11230 
11231 
11232  static const size_type npos = static_cast<size_type>(-1);
11233 
11234  private:
11235 
11236  mutable _Alloc_hider _M_dataplus;
11237 
11238  _CharT*
11239  _M_data() const noexcept
11240  { return _M_dataplus._M_p; }
11241 
11242  _CharT*
11243  _M_data(_CharT* __p) noexcept
11244  { return (_M_dataplus._M_p = __p); }
11245 
11246  _Rep*
11247  _M_rep() const noexcept
11248  { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
11249 
11250 
11251 
11252  iterator
11253  _M_ibegin() const noexcept
11254  { return iterator(_M_data()); }
11255 
11256  iterator
11257  _M_iend() const noexcept
11258  { return iterator(_M_data() + this->size()); }
11259 
11260  void
11261  _M_leak()
11262  {
11263  if (!_M_rep()->_M_is_leaked())
11264  _M_leak_hard();
11265  }
11266 
11267  size_type
11268  _M_check(size_type __pos, const char* __s) const
11269  {
11270  if (__pos > this->size())
11271  __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)"),
11272 
11273  __s, __pos, this->size());
11274  return __pos;
11275  }
11276 
11277  void
11278  _M_check_length(size_type __n1, size_type __n2, const char* __s) const
11279  {
11280  if (this->max_size() - (this->size() - __n1) < __n2)
11281  __throw_length_error((__s));
11282  }
11283 
11284 
11285  size_type
11286  _M_limit(size_type __pos, size_type __off) const noexcept
11287  {
11288  const bool __testoff = __off < this->size() - __pos;
11289  return __testoff ? __off : this->size() - __pos;
11290  }
11291 
11292 
11293  bool
11294  _M_disjunct(const _CharT* __s) const noexcept
11295  {
11296  return (less<const _CharT*>()(__s, _M_data())
11297  || less<const _CharT*>()(_M_data() + this->size(), __s));
11298  }
11299 
11300 
11301 
11302  static void
11303  _M_copy(_CharT* __d, const _CharT* __s, size_type __n) noexcept
11304  {
11305  if (__n == 1)
11306  traits_type::assign(*__d, *__s);
11307  else
11308  traits_type::copy(__d, __s, __n);
11309  }
11310 
11311  static void
11312  _M_move(_CharT* __d, const _CharT* __s, size_type __n) noexcept
11313  {
11314  if (__n == 1)
11315  traits_type::assign(*__d, *__s);
11316  else
11317  traits_type::move(__d, __s, __n);
11318  }
11319 
11320  static void
11321  _M_assign(_CharT* __d, size_type __n, _CharT __c) noexcept
11322  {
11323  if (__n == 1)
11324  traits_type::assign(*__d, __c);
11325  else
11326  traits_type::assign(__d, __n, __c);
11327  }
11328 
11329 
11330 
11331  template<class _Iterator>
11332  static void
11333  _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
11334  noexcept
11335  {
11336  for (; __k1 != __k2; ++__k1, ++__p)
11337  traits_type::assign(*__p, *__k1);
11338  }
11339 
11340  static void
11341  _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept
11342  { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11343 
11344  static void
11345  _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
11346  noexcept
11347  { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11348 
11349  static void
11350  _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept
11351  { _M_copy(__p, __k1, __k2 - __k1); }
11352 
11353  static void
11354  _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
11355  noexcept
11356  { _M_copy(__p, __k1, __k2 - __k1); }
11357 
11358  static int
11359  _S_compare(size_type __n1, size_type __n2) noexcept
11360  {
11361  const difference_type __d = difference_type(__n1 - __n2);
11362 
11363  if (__d > __gnu_cxx::__numeric_traits<int>::__max)
11364  return __gnu_cxx::__numeric_traits<int>::__max;
11365  else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
11366  return __gnu_cxx::__numeric_traits<int>::__min;
11367  else
11368  return int(__d);
11369  }
11370 
11371  void
11372  _M_mutate(size_type __pos, size_type __len1, size_type __len2);
11373 
11374  void
11375  _M_leak_hard();
11376 
11377  static _Rep&
11378  _S_empty_rep() noexcept
11379  { return _Rep::_S_empty_rep(); }
11380 
11381  public:
11382 
11383 
11384 
11385 
11386 
11387 
11388 
11389  basic_string()
11390 
11391  : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
11392 
11393 
11394 
11395 
11396 
11397 
11398 
11399  explicit
11400  basic_string(const _Alloc& __a);
11401 
11402 
11403 
11404 
11405 
11406 
11407  basic_string(const basic_string& __str);
11408 
11409 
11410 
11411 
11412 
11413 
11414  basic_string(const basic_string& __str, size_type __pos,
11415  size_type __n = npos);
11416 
11417 
11418 
11419 
11420 
11421 
11422 
11423  basic_string(const basic_string& __str, size_type __pos,
11424  size_type __n, const _Alloc& __a);
11425 # 488 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11426  basic_string(const _CharT* __s, size_type __n,
11427  const _Alloc& __a = _Alloc());
11428 
11429 
11430 
11431 
11432 
11433  basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
11434 
11435 
11436 
11437 
11438 
11439 
11440  basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
11441 # 512 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11442  basic_string(basic_string&& __str)
11443 
11444  noexcept
11445 
11446  : _M_dataplus(__str._M_dataplus)
11447  {
11448 
11449  __str._M_data(_S_empty_rep()._M_refdata());
11450 
11451 
11452 
11453  }
11454 
11455 
11456 
11457 
11458 
11459 
11460  basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc());
11461 # 539 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11462  template<class _InputIterator>
11463  basic_string(_InputIterator __beg, _InputIterator __end,
11464  const _Alloc& __a = _Alloc());
11465 
11466 
11467 
11468 
11469  ~basic_string() noexcept
11470  { _M_rep()->_M_dispose(this->get_allocator()); }
11471 
11472 
11473 
11474 
11475 
11476  basic_string&
11477  operator=(const basic_string& __str)
11478  { return this->assign(__str); }
11479 
11480 
11481 
11482 
11483 
11484  basic_string&
11485  operator=(const _CharT* __s)
11486  { return this->assign(__s); }
11487 # 572 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11488  basic_string&
11489  operator=(_CharT __c)
11490  {
11491  this->assign(1, __c);
11492  return *this;
11493  }
11494 # 588 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11495  basic_string&
11496  operator=(basic_string&& __str)
11497  {
11498 
11499  this->swap(__str);
11500  return *this;
11501  }
11502 
11503 
11504 
11505 
11506 
11507  basic_string&
11508  operator=(initializer_list<_CharT> __l)
11509  {
11510  this->assign(__l.begin(), __l.size());
11511  return *this;
11512  }
11513 
11514 
11515 
11516 
11517 
11518 
11519 
11520  iterator
11521  begin()
11522  {
11523  _M_leak();
11524  return iterator(_M_data());
11525  }
11526 
11527 
11528 
11529 
11530 
11531  const_iterator
11532  begin() const noexcept
11533  { return const_iterator(_M_data()); }
11534 
11535 
11536 
11537 
11538 
11539  iterator
11540  end()
11541  {
11542  _M_leak();
11543  return iterator(_M_data() + this->size());
11544  }
11545 
11546 
11547 
11548 
11549 
11550  const_iterator
11551  end() const noexcept
11552  { return const_iterator(_M_data() + this->size()); }
11553 
11554 
11555 
11556 
11557 
11558 
11559  reverse_iterator
11560  rbegin()
11561  { return reverse_iterator(this->end()); }
11562 
11563 
11564 
11565 
11566 
11567 
11568  const_reverse_iterator
11569  rbegin() const noexcept
11570  { return const_reverse_iterator(this->end()); }
11571 
11572 
11573 
11574 
11575 
11576 
11577  reverse_iterator
11578  rend()
11579  { return reverse_iterator(this->begin()); }
11580 
11581 
11582 
11583 
11584 
11585 
11586  const_reverse_iterator
11587  rend() const noexcept
11588  { return const_reverse_iterator(this->begin()); }
11589 
11590 
11591 
11592 
11593 
11594 
11595  const_iterator
11596  cbegin() const noexcept
11597  { return const_iterator(this->_M_data()); }
11598 
11599 
11600 
11601 
11602 
11603  const_iterator
11604  cend() const noexcept
11605  { return const_iterator(this->_M_data() + this->size()); }
11606 
11607 
11608 
11609 
11610 
11611 
11612  const_reverse_iterator
11613  crbegin() const noexcept
11614  { return const_reverse_iterator(this->end()); }
11615 
11616 
11617 
11618 
11619 
11620 
11621  const_reverse_iterator
11622  crend() const noexcept
11623  { return const_reverse_iterator(this->begin()); }
11624 
11625 
11626  public:
11627 
11628 
11629 
11630  size_type
11631  size() const noexcept
11632  { return _M_rep()->_M_length; }
11633 
11634 
11635 
11636  size_type
11637  length() const noexcept
11638  { return _M_rep()->_M_length; }
11639 
11640 
11641  size_type
11642  max_size() const noexcept
11643  { return _Rep::_S_max_size; }
11644 # 748 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11645  void
11646  resize(size_type __n, _CharT __c);
11647 # 761 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11648  void
11649  resize(size_type __n)
11650  { this->resize(__n, _CharT()); }
11651 
11652 
11653 
11654  void
11655  shrink_to_fit() noexcept
11656  {
11657  if (capacity() > size())
11658  {
11659  try
11660  { reserve(0); }
11661  catch(...)
11662  { }
11663  }
11664  }
11665 
11666 
11667 
11668 
11669 
11670 
11671  size_type
11672  capacity() const noexcept
11673  { return _M_rep()->_M_capacity; }
11674 # 805 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11675  void
11676  reserve(size_type __res_arg = 0);
11677 
11678 
11679 
11680 
11681 
11682  void
11683  clear()
11684  { _M_mutate(0, this->size(), 0); }
11685 
11686 
11687 
11688 
11689 
11690  bool
11691  empty() const noexcept
11692  { return this->size() == 0; }
11693 # 835 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11694  const_reference
11695  operator[] (size_type __pos) const noexcept
11696  {
11697  ;
11698  return _M_data()[__pos];
11699  }
11700 # 852 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11701  reference
11702  operator[](size_type __pos)
11703  {
11704 
11705 
11706  ;
11707 
11708  ;
11709  _M_leak();
11710  return _M_data()[__pos];
11711  }
11712 # 874 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11713  const_reference
11714  at(size_type __n) const
11715  {
11716  if (__n >= this->size())
11717  __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
11718 
11719 
11720  __n, this->size());
11721  return _M_data()[__n];
11722  }
11723 # 896 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11724  reference
11725  at(size_type __n)
11726  {
11727  if (__n >= size())
11728  __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
11729 
11730 
11731  __n, this->size());
11732  _M_leak();
11733  return _M_data()[__n];
11734  }
11735 
11736 
11737 
11738 
11739 
11740 
11741  reference
11742  front()
11743  { return operator[](0); }
11744 
11745 
11746 
11747 
11748 
11749  const_reference
11750  front() const noexcept
11751  { return operator[](0); }
11752 
11753 
11754 
11755 
11756 
11757  reference
11758  back()
11759  { return operator[](this->size() - 1); }
11760 
11761 
11762 
11763 
11764 
11765  const_reference
11766  back() const noexcept
11767  { return operator[](this->size() - 1); }
11768 # 948 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11769  basic_string&
11770  operator+=(const basic_string& __str)
11771  { return this->append(__str); }
11772 
11773 
11774 
11775 
11776 
11777 
11778  basic_string&
11779  operator+=(const _CharT* __s)
11780  { return this->append(__s); }
11781 
11782 
11783 
11784 
11785 
11786 
11787  basic_string&
11788  operator+=(_CharT __c)
11789  {
11790  this->push_back(__c);
11791  return *this;
11792  }
11793 
11794 
11795 
11796 
11797 
11798 
11799 
11800  basic_string&
11801  operator+=(initializer_list<_CharT> __l)
11802  { return this->append(__l.begin(), __l.size()); }
11803 
11804 
11805 
11806 
11807 
11808 
11809 
11810  basic_string&
11811  append(const basic_string& __str);
11812 # 1005 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11813  basic_string&
11814  append(const basic_string& __str, size_type __pos, size_type __n);
11815 
11816 
11817 
11818 
11819 
11820 
11821 
11822  basic_string&
11823  append(const _CharT* __s, size_type __n);
11824 
11825 
11826 
11827 
11828 
11829 
11830  basic_string&
11831  append(const _CharT* __s)
11832  {
11833  ;
11834  return this->append(__s, traits_type::length(__s));
11835  }
11836 # 1037 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11837  basic_string&
11838  append(size_type __n, _CharT __c);
11839 
11840 
11841 
11842 
11843 
11844 
11845 
11846  basic_string&
11847  append(initializer_list<_CharT> __l)
11848  { return this->append(__l.begin(), __l.size()); }
11849 # 1059 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11850  template<class _InputIterator>
11851  basic_string&
11852  append(_InputIterator __first, _InputIterator __last)
11853  { return this->replace(_M_iend(), _M_iend(), __first, __last); }
11854 
11855 
11856 
11857 
11858 
11859  void
11860  push_back(_CharT __c)
11861  {
11862  const size_type __len = 1 + this->size();
11863  if (__len > this->capacity() || _M_rep()->_M_is_shared())
11864  this->reserve(__len);
11865  traits_type::assign(_M_data()[this->size()], __c);
11866  _M_rep()->_M_set_length_and_sharable(__len);
11867  }
11868 
11869 
11870 
11871 
11872 
11873 
11874  basic_string&
11875  assign(const basic_string& __str);
11876 # 1096 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11877  basic_string&
11878  assign(basic_string&& __str)
11879  {
11880  this->swap(__str);
11881  return *this;
11882  }
11883 # 1117 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11884  basic_string&
11885  assign(const basic_string& __str, size_type __pos, size_type __n)
11886  { return this->assign(__str._M_data()
11887  + __str._M_check(__pos, "basic_string::assign"),
11888  __str._M_limit(__pos, __n)); }
11889 # 1133 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11890  basic_string&
11891  assign(const _CharT* __s, size_type __n);
11892 # 1145 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11893  basic_string&
11894  assign(const _CharT* __s)
11895  {
11896  ;
11897  return this->assign(__s, traits_type::length(__s));
11898  }
11899 # 1161 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11900  basic_string&
11901  assign(size_type __n, _CharT __c)
11902  { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
11903 # 1173 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11904  template<class _InputIterator>
11905  basic_string&
11906  assign(_InputIterator __first, _InputIterator __last)
11907  { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
11908 
11909 
11910 
11911 
11912 
11913 
11914 
11915  basic_string&
11916  assign(initializer_list<_CharT> __l)
11917  { return this->assign(__l.begin(), __l.size()); }
11918 # 1202 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11919  void
11920  insert(iterator __p, size_type __n, _CharT __c)
11921  { this->replace(__p, __p, __n, __c); }
11922 # 1218 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11923  template<class _InputIterator>
11924  void
11925  insert(iterator __p, _InputIterator __beg, _InputIterator __end)
11926  { this->replace(__p, __p, __beg, __end); }
11927 # 1230 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11928  void
11929  insert(iterator __p, initializer_list<_CharT> __l)
11930  {
11931  ;
11932  this->insert(__p - _M_ibegin(), __l.begin(), __l.size());
11933  }
11934 # 1250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11935  basic_string&
11936  insert(size_type __pos1, const basic_string& __str)
11937  { return this->insert(__pos1, __str, size_type(0), __str.size()); }
11938 # 1272 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11939  basic_string&
11940  insert(size_type __pos1, const basic_string& __str,
11941  size_type __pos2, size_type __n)
11942  { return this->insert(__pos1, __str._M_data()
11943  + __str._M_check(__pos2, "basic_string::insert"),
11944  __str._M_limit(__pos2, __n)); }
11945 # 1295 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11946  basic_string&
11947  insert(size_type __pos, const _CharT* __s, size_type __n);
11948 # 1313 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11949  basic_string&
11950  insert(size_type __pos, const _CharT* __s)
11951  {
11952  ;
11953  return this->insert(__pos, __s, traits_type::length(__s));
11954  }
11955 # 1336 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11956  basic_string&
11957  insert(size_type __pos, size_type __n, _CharT __c)
11958  { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
11959  size_type(0), __n, __c); }
11960 # 1354 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11961  iterator
11962  insert(iterator __p, _CharT __c)
11963  {
11964  ;
11965  const size_type __pos = __p - _M_ibegin();
11966  _M_replace_aux(__pos, size_type(0), size_type(1), __c);
11967  _M_rep()->_M_set_leaked();
11968  return iterator(_M_data() + __pos);
11969  }
11970 # 1379 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11971  basic_string&
11972  erase(size_type __pos = 0, size_type __n = npos)
11973  {
11974  _M_mutate(_M_check(__pos, "basic_string::erase"),
11975  _M_limit(__pos, __n), size_type(0));
11976  return *this;
11977  }
11978 # 1395 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11979  iterator
11980  erase(iterator __position)
11981  {
11982 
11983  ;
11984  const size_type __pos = __position - _M_ibegin();
11985  _M_mutate(__pos, size_type(1), size_type(0));
11986  _M_rep()->_M_set_leaked();
11987  return iterator(_M_data() + __pos);
11988  }
11989 # 1415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
11990  iterator
11991  erase(iterator __first, iterator __last);
11992 
11993 
11994 
11995 
11996 
11997 
11998 
11999  void
12000  pop_back()
12001  { erase(size()-1, 1); }
12002 # 1446 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12003  basic_string&
12004  replace(size_type __pos, size_type __n, const basic_string& __str)
12005  { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
12006 # 1468 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12007  basic_string&
12008  replace(size_type __pos1, size_type __n1, const basic_string& __str,
12009  size_type __pos2, size_type __n2)
12010  { return this->replace(__pos1, __n1, __str._M_data()
12011  + __str._M_check(__pos2, "basic_string::replace"),
12012  __str._M_limit(__pos2, __n2)); }
12013 # 1493 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12014  basic_string&
12015  replace(size_type __pos, size_type __n1, const _CharT* __s,
12016  size_type __n2);
12017 # 1513 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12018  basic_string&
12019  replace(size_type __pos, size_type __n1, const _CharT* __s)
12020  {
12021  ;
12022  return this->replace(__pos, __n1, __s, traits_type::length(__s));
12023  }
12024 # 1537 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12025  basic_string&
12026  replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
12027  { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
12028  _M_limit(__pos, __n1), __n2, __c); }
12029 # 1555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12030  basic_string&
12031  replace(iterator __i1, iterator __i2, const basic_string& __str)
12032  { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
12033 # 1574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12034  basic_string&
12035  replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
12036  {
12037 
12038  ;
12039  return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
12040  }
12041 # 1595 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12042  basic_string&
12043  replace(iterator __i1, iterator __i2, const _CharT* __s)
12044  {
12045  ;
12046  return this->replace(__i1, __i2, __s, traits_type::length(__s));
12047  }
12048 # 1616 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12049  basic_string&
12050  replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
12051  {
12052 
12053  ;
12054  return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
12055  }
12056 # 1639 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12057  template<class _InputIterator>
12058  basic_string&
12059  replace(iterator __i1, iterator __i2,
12060  _InputIterator __k1, _InputIterator __k2)
12061  {
12062 
12063  ;
12064  ;
12065  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
12066  return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
12067  }
12068 
12069 
12070 
12071  basic_string&
12072  replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
12073  {
12074 
12075  ;
12076  ;
12077  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12078  __k1, __k2 - __k1);
12079  }
12080 
12081  basic_string&
12082  replace(iterator __i1, iterator __i2,
12083  const _CharT* __k1, const _CharT* __k2)
12084  {
12085 
12086  ;
12087  ;
12088  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12089  __k1, __k2 - __k1);
12090  }
12091 
12092  basic_string&
12093  replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
12094  {
12095 
12096  ;
12097  ;
12098  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12099  __k1.base(), __k2 - __k1);
12100  }
12101 
12102  basic_string&
12103  replace(iterator __i1, iterator __i2,
12104  const_iterator __k1, const_iterator __k2)
12105  {
12106 
12107  ;
12108  ;
12109  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12110  __k1.base(), __k2 - __k1);
12111  }
12112 # 1710 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12113  basic_string& replace(iterator __i1, iterator __i2,
12114  initializer_list<_CharT> __l)
12115  { return this->replace(__i1, __i2, __l.begin(), __l.end()); }
12116 
12117 
12118  private:
12119  template<class _Integer>
12120  basic_string&
12121  _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
12122  _Integer __val, __true_type)
12123  { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
12124 
12125  template<class _InputIterator>
12126  basic_string&
12127  _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
12128  _InputIterator __k2, __false_type);
12129 
12130  basic_string&
12131  _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
12132  _CharT __c);
12133 
12134  basic_string&
12135  _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
12136  size_type __n2);
12137 
12138 
12139 
12140  template<class _InIterator>
12141  static _CharT*
12142  _S_construct_aux(_InIterator __beg, _InIterator __end,
12143  const _Alloc& __a, __false_type)
12144  {
12145  typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
12146  return _S_construct(__beg, __end, __a, _Tag());
12147  }
12148 
12149 
12150 
12151  template<class _Integer>
12152  static _CharT*
12153  _S_construct_aux(_Integer __beg, _Integer __end,
12154  const _Alloc& __a, __true_type)
12155  { return _S_construct_aux_2(static_cast<size_type>(__beg),
12156  __end, __a); }
12157 
12158  static _CharT*
12159  _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a)
12160  { return _S_construct(__req, __c, __a); }
12161 
12162  template<class _InIterator>
12163  static _CharT*
12164  _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
12165  {
12166  typedef typename std::__is_integer<_InIterator>::__type _Integral;
12167  return _S_construct_aux(__beg, __end, __a, _Integral());
12168  }
12169 
12170 
12171  template<class _InIterator>
12172  static _CharT*
12173  _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
12174  input_iterator_tag);
12175 
12176 
12177 
12178  template<class _FwdIterator>
12179  static _CharT*
12180  _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
12181  forward_iterator_tag);
12182 
12183  static _CharT*
12184  _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
12185 
12186  public:
12187 # 1797 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12188  size_type
12189  copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
12190 # 1808 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12191  void
12192  swap(basic_string& __s);
12193 # 1818 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12194  const _CharT*
12195  c_str() const noexcept
12196  { return _M_data(); }
12197 
12198 
12199 
12200 
12201 
12202 
12203 
12204  const _CharT*
12205  data() const noexcept
12206  { return _M_data(); }
12207 
12208 
12209 
12210 
12211  allocator_type
12212  get_allocator() const noexcept
12213  { return _M_dataplus; }
12214 # 1851 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12215  size_type
12216  find(const _CharT* __s, size_type __pos, size_type __n) const;
12217 # 1864 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12218  size_type
12219  find(const basic_string& __str, size_type __pos = 0) const
12220  noexcept
12221  { return this->find(__str.data(), __pos, __str.size()); }
12222 # 1879 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12223  size_type
12224  find(const _CharT* __s, size_type __pos = 0) const
12225  {
12226  ;
12227  return this->find(__s, __pos, traits_type::length(__s));
12228  }
12229 # 1896 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12230  size_type
12231  find(_CharT __c, size_type __pos = 0) const noexcept;
12232 # 1909 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12233  size_type
12234  rfind(const basic_string& __str, size_type __pos = npos) const
12235  noexcept
12236  { return this->rfind(__str.data(), __pos, __str.size()); }
12237 # 1926 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12238  size_type
12239  rfind(const _CharT* __s, size_type __pos, size_type __n) const;
12240 # 1939 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12241  size_type
12242  rfind(const _CharT* __s, size_type __pos = npos) const
12243  {
12244  ;
12245  return this->rfind(__s, __pos, traits_type::length(__s));
12246  }
12247 # 1956 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12248  size_type
12249  rfind(_CharT __c, size_type __pos = npos) const noexcept;
12250 # 1970 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12251  size_type
12252  find_first_of(const basic_string& __str, size_type __pos = 0) const
12253  noexcept
12254  { return this->find_first_of(__str.data(), __pos, __str.size()); }
12255 # 1987 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12256  size_type
12257  find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
12258 # 2000 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12259  size_type
12260  find_first_of(const _CharT* __s, size_type __pos = 0) const
12261  {
12262  ;
12263  return this->find_first_of(__s, __pos, traits_type::length(__s));
12264  }
12265 # 2019 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12266  size_type
12267  find_first_of(_CharT __c, size_type __pos = 0) const noexcept
12268  { return this->find(__c, __pos); }
12269 # 2034 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12270  size_type
12271  find_last_of(const basic_string& __str, size_type __pos = npos) const
12272  noexcept
12273  { return this->find_last_of(__str.data(), __pos, __str.size()); }
12274 # 2051 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12275  size_type
12276  find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
12277 # 2064 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12278  size_type
12279  find_last_of(const _CharT* __s, size_type __pos = npos) const
12280  {
12281  ;
12282  return this->find_last_of(__s, __pos, traits_type::length(__s));
12283  }
12284 # 2083 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12285  size_type
12286  find_last_of(_CharT __c, size_type __pos = npos) const noexcept
12287  { return this->rfind(__c, __pos); }
12288 # 2097 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12289  size_type
12290  find_first_not_of(const basic_string& __str, size_type __pos = 0) const
12291  noexcept
12292  { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
12293 # 2114 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12294  size_type
12295  find_first_not_of(const _CharT* __s, size_type __pos,
12296  size_type __n) const;
12297 # 2128 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12298  size_type
12299  find_first_not_of(const _CharT* __s, size_type __pos = 0) const
12300  {
12301  ;
12302  return this->find_first_not_of(__s, __pos, traits_type::length(__s));
12303  }
12304 # 2145 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12305  size_type
12306  find_first_not_of(_CharT __c, size_type __pos = 0) const
12307  noexcept;
12308 # 2160 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12309  size_type
12310  find_last_not_of(const basic_string& __str, size_type __pos = npos) const
12311  noexcept
12312  { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
12313 # 2177 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12314  size_type
12315  find_last_not_of(const _CharT* __s, size_type __pos,
12316  size_type __n) const;
12317 # 2191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12318  size_type
12319  find_last_not_of(const _CharT* __s, size_type __pos = npos) const
12320  {
12321  ;
12322  return this->find_last_not_of(__s, __pos, traits_type::length(__s));
12323  }
12324 # 2208 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12325  size_type
12326  find_last_not_of(_CharT __c, size_type __pos = npos) const
12327  noexcept;
12328 # 2224 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12329  basic_string
12330  substr(size_type __pos = 0, size_type __n = npos) const
12331  { return basic_string(*this,
12332  _M_check(__pos, "basic_string::substr"), __n); }
12333 # 2243 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12334  int
12335  compare(const basic_string& __str) const
12336  {
12337  const size_type __size = this->size();
12338  const size_type __osize = __str.size();
12339  const size_type __len = std::min(__size, __osize);
12340 
12341  int __r = traits_type::compare(_M_data(), __str.data(), __len);
12342  if (!__r)
12343  __r = _S_compare(__size, __osize);
12344  return __r;
12345  }
12346 # 2275 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12347  int
12348  compare(size_type __pos, size_type __n, const basic_string& __str) const;
12349 # 2301 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12350  int
12351  compare(size_type __pos1, size_type __n1, const basic_string& __str,
12352  size_type __pos2, size_type __n2) const;
12353 # 2319 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12354  int
12355  compare(const _CharT* __s) const;
12356 # 2343 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12357  int
12358  compare(size_type __pos, size_type __n1, const _CharT* __s) const;
12359 # 2370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12360  int
12361  compare(size_type __pos, size_type __n1, const _CharT* __s,
12362  size_type __n2) const;
12363  };
12364 # 2382 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12365  template<typename _CharT, typename _Traits, typename _Alloc>
12366  basic_string<_CharT, _Traits, _Alloc>
12367  operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12368  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12369  {
12370  basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12371  __str.append(__rhs);
12372  return __str;
12373  }
12374 
12375 
12376 
12377 
12378 
12379 
12380 
12381  template<typename _CharT, typename _Traits, typename _Alloc>
12382  basic_string<_CharT,_Traits,_Alloc>
12383  operator+(const _CharT* __lhs,
12384  const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12385 
12386 
12387 
12388 
12389 
12390 
12391 
12392  template<typename _CharT, typename _Traits, typename _Alloc>
12393  basic_string<_CharT,_Traits,_Alloc>
12394  operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12395 
12396 
12397 
12398 
12399 
12400 
12401 
12402  template<typename _CharT, typename _Traits, typename _Alloc>
12403  inline basic_string<_CharT, _Traits, _Alloc>
12404  operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12405  const _CharT* __rhs)
12406  {
12407  basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12408  __str.append(__rhs);
12409  return __str;
12410  }
12411 
12412 
12413 
12414 
12415 
12416 
12417 
12418  template<typename _CharT, typename _Traits, typename _Alloc>
12419  inline basic_string<_CharT, _Traits, _Alloc>
12420  operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
12421  {
12422  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
12423  typedef typename __string_type::size_type __size_type;
12424  __string_type __str(__lhs);
12425  __str.append(__size_type(1), __rhs);
12426  return __str;
12427  }
12428 
12429 
12430  template<typename _CharT, typename _Traits, typename _Alloc>
12431  inline basic_string<_CharT, _Traits, _Alloc>
12432  operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12433  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12434  { return std::move(__lhs.append(__rhs)); }
12435 
12436  template<typename _CharT, typename _Traits, typename _Alloc>
12437  inline basic_string<_CharT, _Traits, _Alloc>
12438  operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12439  basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12440  { return std::move(__rhs.insert(0, __lhs)); }
12441 
12442  template<typename _CharT, typename _Traits, typename _Alloc>
12443  inline basic_string<_CharT, _Traits, _Alloc>
12444  operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12445  basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12446  {
12447  const auto __size = __lhs.size() + __rhs.size();
12448  const bool __cond = (__size > __lhs.capacity()
12449  && __size <= __rhs.capacity());
12450  return __cond ? std::move(__rhs.insert(0, __lhs))
12451  : std::move(__lhs.append(__rhs));
12452  }
12453 
12454  template<typename _CharT, typename _Traits, typename _Alloc>
12455  inline basic_string<_CharT, _Traits, _Alloc>
12456  operator+(const _CharT* __lhs,
12457  basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12458  { return std::move(__rhs.insert(0, __lhs)); }
12459 
12460  template<typename _CharT, typename _Traits, typename _Alloc>
12461  inline basic_string<_CharT, _Traits, _Alloc>
12462  operator+(_CharT __lhs,
12463  basic_string<_CharT, _Traits, _Alloc>&& __rhs)
12464  { return std::move(__rhs.insert(0, 1, __lhs)); }
12465 
12466  template<typename _CharT, typename _Traits, typename _Alloc>
12467  inline basic_string<_CharT, _Traits, _Alloc>
12468  operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12469  const _CharT* __rhs)
12470  { return std::move(__lhs.append(__rhs)); }
12471 
12472  template<typename _CharT, typename _Traits, typename _Alloc>
12473  inline basic_string<_CharT, _Traits, _Alloc>
12474  operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
12475  _CharT __rhs)
12476  { return std::move(__lhs.append(1, __rhs)); }
12477 # 2503 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12478  template<typename _CharT, typename _Traits, typename _Alloc>
12479  inline bool
12480  operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12481  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12482  { return __lhs.compare(__rhs) == 0; }
12483 
12484  template<typename _CharT>
12485  inline
12486  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type
12487  operator==(const basic_string<_CharT>& __lhs,
12488  const basic_string<_CharT>& __rhs)
12489  { return (__lhs.size() == __rhs.size()
12490  && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(),
12491  __lhs.size())); }
12492 
12493 
12494 
12495 
12496 
12497 
12498 
12499  template<typename _CharT, typename _Traits, typename _Alloc>
12500  inline bool
12501  operator==(const _CharT* __lhs,
12502  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12503  { return __rhs.compare(__lhs) == 0; }
12504 
12505 
12506 
12507 
12508 
12509 
12510 
12511  template<typename _CharT, typename _Traits, typename _Alloc>
12512  inline bool
12513  operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12514  const _CharT* __rhs)
12515  { return __lhs.compare(__rhs) == 0; }
12516 # 2549 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12517  template<typename _CharT, typename _Traits, typename _Alloc>
12518  inline bool
12519  operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12520  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12521  { return !(__lhs == __rhs); }
12522 
12523 
12524 
12525 
12526 
12527 
12528 
12529  template<typename _CharT, typename _Traits, typename _Alloc>
12530  inline bool
12531  operator!=(const _CharT* __lhs,
12532  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12533  { return !(__lhs == __rhs); }
12534 
12535 
12536 
12537 
12538 
12539 
12540 
12541  template<typename _CharT, typename _Traits, typename _Alloc>
12542  inline bool
12543  operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12544  const _CharT* __rhs)
12545  { return !(__lhs == __rhs); }
12546 # 2586 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12547  template<typename _CharT, typename _Traits, typename _Alloc>
12548  inline bool
12549  operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12550  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12551  { return __lhs.compare(__rhs) < 0; }
12552 
12553 
12554 
12555 
12556 
12557 
12558 
12559  template<typename _CharT, typename _Traits, typename _Alloc>
12560  inline bool
12561  operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12562  const _CharT* __rhs)
12563  { return __lhs.compare(__rhs) < 0; }
12564 
12565 
12566 
12567 
12568 
12569 
12570 
12571  template<typename _CharT, typename _Traits, typename _Alloc>
12572  inline bool
12573  operator<(const _CharT* __lhs,
12574  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12575  { return __rhs.compare(__lhs) > 0; }
12576 # 2623 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12577  template<typename _CharT, typename _Traits, typename _Alloc>
12578  inline bool
12579  operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12580  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12581  { return __lhs.compare(__rhs) > 0; }
12582 
12583 
12584 
12585 
12586 
12587 
12588 
12589  template<typename _CharT, typename _Traits, typename _Alloc>
12590  inline bool
12591  operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12592  const _CharT* __rhs)
12593  { return __lhs.compare(__rhs) > 0; }
12594 
12595 
12596 
12597 
12598 
12599 
12600 
12601  template<typename _CharT, typename _Traits, typename _Alloc>
12602  inline bool
12603  operator>(const _CharT* __lhs,
12604  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12605  { return __rhs.compare(__lhs) < 0; }
12606 # 2660 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12607  template<typename _CharT, typename _Traits, typename _Alloc>
12608  inline bool
12609  operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12610  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12611  { return __lhs.compare(__rhs) <= 0; }
12612 
12613 
12614 
12615 
12616 
12617 
12618 
12619  template<typename _CharT, typename _Traits, typename _Alloc>
12620  inline bool
12621  operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12622  const _CharT* __rhs)
12623  { return __lhs.compare(__rhs) <= 0; }
12624 
12625 
12626 
12627 
12628 
12629 
12630 
12631  template<typename _CharT, typename _Traits, typename _Alloc>
12632  inline bool
12633  operator<=(const _CharT* __lhs,
12634  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12635  { return __rhs.compare(__lhs) >= 0; }
12636 # 2697 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12637  template<typename _CharT, typename _Traits, typename _Alloc>
12638  inline bool
12639  operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12640  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12641  { return __lhs.compare(__rhs) >= 0; }
12642 
12643 
12644 
12645 
12646 
12647 
12648 
12649  template<typename _CharT, typename _Traits, typename _Alloc>
12650  inline bool
12651  operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12652  const _CharT* __rhs)
12653  { return __lhs.compare(__rhs) >= 0; }
12654 
12655 
12656 
12657 
12658 
12659 
12660 
12661  template<typename _CharT, typename _Traits, typename _Alloc>
12662  inline bool
12663  operator>=(const _CharT* __lhs,
12664  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12665  { return __rhs.compare(__lhs) <= 0; }
12666 # 2734 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12667  template<typename _CharT, typename _Traits, typename _Alloc>
12668  inline void
12669  swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
12670  basic_string<_CharT, _Traits, _Alloc>& __rhs)
12671  { __lhs.swap(__rhs); }
12672 # 2752 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12673  template<typename _CharT, typename _Traits, typename _Alloc>
12674  basic_istream<_CharT, _Traits>&
12675  operator>>(basic_istream<_CharT, _Traits>& __is,
12676  basic_string<_CharT, _Traits, _Alloc>& __str);
12677 
12678  template<>
12679  basic_istream<char>&
12680  operator>>(basic_istream<char>& __is, basic_string<char>& __str);
12681 # 2770 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12682  template<typename _CharT, typename _Traits, typename _Alloc>
12683  inline basic_ostream<_CharT, _Traits>&
12684  operator<<(basic_ostream<_CharT, _Traits>& __os,
12685  const basic_string<_CharT, _Traits, _Alloc>& __str)
12686  {
12687 
12688 
12689  return __ostream_insert(__os, __str.data(), __str.size());
12690  }
12691 # 2793 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12692  template<typename _CharT, typename _Traits, typename _Alloc>
12693  basic_istream<_CharT, _Traits>&
12694  getline(basic_istream<_CharT, _Traits>& __is,
12695  basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
12696 # 2810 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
12697  template<typename _CharT, typename _Traits, typename _Alloc>
12698  inline basic_istream<_CharT, _Traits>&
12699  getline(basic_istream<_CharT, _Traits>& __is,
12700  basic_string<_CharT, _Traits, _Alloc>& __str)
12701  { return getline(__is, __str, __is.widen('\n')); }
12702 
12703  template<>
12704  basic_istream<char>&
12705  getline(basic_istream<char>& __in, basic_string<char>& __str,
12706  char __delim);
12707 
12708 
12709  template<>
12710  basic_istream<wchar_t>&
12711  getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
12712  wchar_t __delim);
12713 
12714 
12715 
12716 }
12717 
12718 
12719 
12720 
12721 
12722 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 1 3
12723 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 3
12724 
12725 
12726 
12727 
12728 
12729 
12730 
12731 
12732 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
12733 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
12734 # 72 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
12735 # 1 "/usr/include/stdlib.h" 1 3 4
12736 # 32 "/usr/include/stdlib.h" 3 4
12737 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
12738 # 33 "/usr/include/stdlib.h" 2 3 4
12739 
12740 extern "C" {
12741 
12742 
12743 
12744 
12745 
12746 
12747 
12748 # 1 "/usr/include/bits/waitflags.h" 1 3 4
12749 # 42 "/usr/include/stdlib.h" 2 3 4
12750 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
12751 # 66 "/usr/include/bits/waitstatus.h" 3 4
12752 union wait
12753  {
12754  int w_status;
12755  struct
12756  {
12757 
12758  unsigned int __w_termsig:7;
12759  unsigned int __w_coredump:1;
12760  unsigned int __w_retcode:8;
12761  unsigned int:16;
12762 
12763 
12764 
12765 
12766 
12767 
12768 
12769  } __wait_terminated;
12770  struct
12771  {
12772 
12773  unsigned int __w_stopval:8;
12774  unsigned int __w_stopsig:8;
12775  unsigned int:16;
12776 
12777 
12778 
12779 
12780 
12781 
12782  } __wait_stopped;
12783  };
12784 # 43 "/usr/include/stdlib.h" 2 3 4
12785 # 97 "/usr/include/stdlib.h" 3 4
12786 typedef struct
12787  {
12788  int quot;
12789  int rem;
12790  } div_t;
12791 
12792 
12793 
12794 typedef struct
12795  {
12796  long int quot;
12797  long int rem;
12798  } ldiv_t;
12799 
12800 
12801 
12802 
12803 
12804 
12805 
12806 __extension__ typedef struct
12807  {
12808  long long int quot;
12809  long long int rem;
12810  } lldiv_t;
12811 # 139 "/usr/include/stdlib.h" 3 4
12812 extern size_t __ctype_get_mb_cur_max (void) throw () ;
12813 
12814 
12815 
12816 
12817 extern double atof (const char *__nptr)
12818  throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12819 
12820 extern int atoi (const char *__nptr)
12821  throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12822 
12823 extern long int atol (const char *__nptr)
12824  throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12825 
12826 
12827 
12828 
12829 
12830 __extension__ extern long long int atoll (const char *__nptr)
12831  throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12832 
12833 
12834 
12835 
12836 
12837 extern double strtod (const char *__restrict __nptr,
12838  char **__restrict __endptr)
12839  throw () __attribute__ ((__nonnull__ (1)));
12840 
12841 
12842 
12843 
12844 
12845 extern float strtof (const char *__restrict __nptr,
12846  char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
12847 
12848 extern long double strtold (const char *__restrict __nptr,
12849  char **__restrict __endptr)
12850  throw () __attribute__ ((__nonnull__ (1)));
12851 
12852 
12853 
12854 
12855 
12856 extern long int strtol (const char *__restrict __nptr,
12857  char **__restrict __endptr, int __base)
12858  throw () __attribute__ ((__nonnull__ (1)));
12859 
12860 extern unsigned long int strtoul (const char *__restrict __nptr,
12861  char **__restrict __endptr, int __base)
12862  throw () __attribute__ ((__nonnull__ (1)));
12863 
12864 
12865 
12866 
12867 __extension__
12868 extern long long int strtoq (const char *__restrict __nptr,
12869  char **__restrict __endptr, int __base)
12870  throw () __attribute__ ((__nonnull__ (1)));
12871 
12872 __extension__
12873 extern unsigned long long int strtouq (const char *__restrict __nptr,
12874  char **__restrict __endptr, int __base)
12875  throw () __attribute__ ((__nonnull__ (1)));
12876 
12877 
12878 
12879 
12880 
12881 __extension__
12882 extern long long int strtoll (const char *__restrict __nptr,
12883  char **__restrict __endptr, int __base)
12884  throw () __attribute__ ((__nonnull__ (1)));
12885 
12886 __extension__
12887 extern unsigned long long int strtoull (const char *__restrict __nptr,
12888  char **__restrict __endptr, int __base)
12889  throw () __attribute__ ((__nonnull__ (1)));
12890 # 239 "/usr/include/stdlib.h" 3 4
12891 extern long int strtol_l (const char *__restrict __nptr,
12892  char **__restrict __endptr, int __base,
12893  __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
12894 
12895 extern unsigned long int strtoul_l (const char *__restrict __nptr,
12896  char **__restrict __endptr,
12897  int __base, __locale_t __loc)
12898  throw () __attribute__ ((__nonnull__ (1, 4)));
12899 
12900 __extension__
12901 extern long long int strtoll_l (const char *__restrict __nptr,
12902  char **__restrict __endptr, int __base,
12903  __locale_t __loc)
12904  throw () __attribute__ ((__nonnull__ (1, 4)));
12905 
12906 __extension__
12907 extern unsigned long long int strtoull_l (const char *__restrict __nptr,
12908  char **__restrict __endptr,
12909  int __base, __locale_t __loc)
12910  throw () __attribute__ ((__nonnull__ (1, 4)));
12911 
12912 extern double strtod_l (const char *__restrict __nptr,
12913  char **__restrict __endptr, __locale_t __loc)
12914  throw () __attribute__ ((__nonnull__ (1, 3)));
12915 
12916 extern float strtof_l (const char *__restrict __nptr,
12917  char **__restrict __endptr, __locale_t __loc)
12918  throw () __attribute__ ((__nonnull__ (1, 3)));
12919 
12920 extern long double strtold_l (const char *__restrict __nptr,
12921  char **__restrict __endptr,
12922  __locale_t __loc)
12923  throw () __attribute__ ((__nonnull__ (1, 3)));
12924 # 305 "/usr/include/stdlib.h" 3 4
12925 extern char *l64a (long int __n) throw () ;
12926 
12927 
12928 extern long int a64l (const char *__s)
12929  throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
12930 
12931 
12932 
12933 
12934 
12935 # 1 "/usr/include/sys/types.h" 1 3 4
12936 # 27 "/usr/include/sys/types.h" 3 4
12937 extern "C" {
12938 
12939 
12940 
12941 
12942 
12943 typedef __u_char u_char;
12944 typedef __u_short u_short;
12945 typedef __u_int u_int;
12946 typedef __u_long u_long;
12947 typedef __quad_t quad_t;
12948 typedef __u_quad_t u_quad_t;
12949 typedef __fsid_t fsid_t;
12950 
12951 
12952 
12953 
12954 typedef __loff_t loff_t;
12955 
12956 
12957 
12958 typedef __ino_t ino_t;
12959 
12960 
12961 
12962 
12963 
12964 
12965 typedef __ino64_t ino64_t;
12966 
12967 
12968 
12969 
12970 typedef __dev_t dev_t;
12971 
12972 
12973 
12974 
12975 typedef __gid_t gid_t;
12976 
12977 
12978 
12979 
12980 typedef __mode_t mode_t;
12981 
12982 
12983 
12984 
12985 typedef __nlink_t nlink_t;
12986 
12987 
12988 
12989 
12990 typedef __uid_t uid_t;
12991 
12992 
12993 
12994 
12995 
12996 typedef __off_t off_t;
12997 
12998 
12999 
13000 
13001 
13002 
13003 typedef __off64_t off64_t;
13004 # 104 "/usr/include/sys/types.h" 3 4
13005 typedef __id_t id_t;
13006 
13007 
13008 
13009 
13010 typedef __ssize_t ssize_t;
13011 
13012 
13013 
13014 
13015 
13016 typedef __daddr_t daddr_t;
13017 typedef __caddr_t caddr_t;
13018 
13019 
13020 
13021 
13022 
13023 typedef __key_t key_t;
13024 # 136 "/usr/include/sys/types.h" 3 4
13025 typedef __useconds_t useconds_t;
13026 
13027 
13028 
13029 typedef __suseconds_t suseconds_t;
13030 
13031 
13032 
13033 
13034 
13035 
13036 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13037 # 147 "/usr/include/sys/types.h" 2 3 4
13038 
13039 
13040 
13041 typedef unsigned long int ulong;
13042 typedef unsigned short int ushort;
13043 typedef unsigned int uint;
13044 # 200 "/usr/include/sys/types.h" 3 4
13045 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
13046 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
13047 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
13048 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
13049 
13050 typedef int register_t __attribute__ ((__mode__ (__word__)));
13051 # 219 "/usr/include/sys/types.h" 3 4
13052 # 1 "/usr/include/sys/select.h" 1 3 4
13053 # 30 "/usr/include/sys/select.h" 3 4
13054 # 1 "/usr/include/bits/select.h" 1 3 4
13055 # 22 "/usr/include/bits/select.h" 3 4
13056 # 1 "/usr/include/bits/wordsize.h" 1 3 4
13057 # 23 "/usr/include/bits/select.h" 2 3 4
13058 # 31 "/usr/include/sys/select.h" 2 3 4
13059 
13060 
13061 # 1 "/usr/include/bits/sigset.h" 1 3 4
13062 # 22 "/usr/include/bits/sigset.h" 3 4
13063 typedef int __sig_atomic_t;
13064 
13065 
13066 
13067 
13068 typedef struct
13069  {
13070  unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
13071  } __sigset_t;
13072 # 34 "/usr/include/sys/select.h" 2 3 4
13073 
13074 
13075 
13076 typedef __sigset_t sigset_t;
13077 
13078 
13079 
13080 
13081 
13082 
13083 
13084 
13085 # 1 "/usr/include/bits/time.h" 1 3 4
13086 # 46 "/usr/include/sys/select.h" 2 3 4
13087 
13088 
13089 
13090 
13091 
13092 
13093 
13094 
13095 typedef long int __fd_mask;
13096 # 64 "/usr/include/sys/select.h" 3 4
13097 typedef struct
13098  {
13099 
13100 
13101 
13102  __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
13103 
13104 
13105 
13106 
13107 
13108  } fd_set;
13109 
13110 
13111 
13112 
13113 
13114 
13115 typedef __fd_mask fd_mask;
13116 # 96 "/usr/include/sys/select.h" 3 4
13117 extern "C" {
13118 # 106 "/usr/include/sys/select.h" 3 4
13119 extern int select (int __nfds, fd_set *__restrict __readfds,
13120  fd_set *__restrict __writefds,
13121  fd_set *__restrict __exceptfds,
13122  struct timeval *__restrict __timeout);
13123 # 118 "/usr/include/sys/select.h" 3 4
13124 extern int pselect (int __nfds, fd_set *__restrict __readfds,
13125  fd_set *__restrict __writefds,
13126  fd_set *__restrict __exceptfds,
13127  const struct timespec *__restrict __timeout,
13128  const __sigset_t *__restrict __sigmask);
13129 # 131 "/usr/include/sys/select.h" 3 4
13130 }
13131 # 220 "/usr/include/sys/types.h" 2 3 4
13132 
13133 
13134 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
13135 # 24 "/usr/include/sys/sysmacros.h" 3 4
13136 extern "C" {
13137 
13138 __extension__
13139 extern unsigned int gnu_dev_major (unsigned long long int __dev)
13140  throw () __attribute__ ((__const__));
13141 __extension__
13142 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
13143  throw () __attribute__ ((__const__));
13144 __extension__
13145 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
13146  unsigned int __minor)
13147  throw () __attribute__ ((__const__));
13148 # 58 "/usr/include/sys/sysmacros.h" 3 4
13149 }
13150 # 223 "/usr/include/sys/types.h" 2 3 4
13151 
13152 
13153 
13154 
13155 
13156 typedef __blksize_t blksize_t;
13157 
13158 
13159 
13160 
13161 
13162 
13163 typedef __blkcnt_t blkcnt_t;
13164 
13165 
13166 
13167 typedef __fsblkcnt_t fsblkcnt_t;
13168 
13169 
13170 
13171 typedef __fsfilcnt_t fsfilcnt_t;
13172 # 262 "/usr/include/sys/types.h" 3 4
13173 typedef __blkcnt64_t blkcnt64_t;
13174 typedef __fsblkcnt64_t fsblkcnt64_t;
13175 typedef __fsfilcnt64_t fsfilcnt64_t;
13176 # 273 "/usr/include/sys/types.h" 3 4
13177 }
13178 # 315 "/usr/include/stdlib.h" 2 3 4
13179 
13180 
13181 
13182 
13183 
13184 
13185 extern long int random (void) throw ();
13186 
13187 
13188 extern void srandom (unsigned int __seed) throw ();
13189 
13190 
13191 
13192 
13193 
13194 extern char *initstate (unsigned int __seed, char *__statebuf,
13195  size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
13196 
13197 
13198 
13199 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
13200 
13201 
13202 
13203 
13204 
13205 
13206 
13207 struct random_data
13208  {
13209  int32_t *fptr;
13210  int32_t *rptr;
13211  int32_t *state;
13212  int rand_type;
13213  int rand_deg;
13214  int rand_sep;
13215  int32_t *end_ptr;
13216  };
13217 
13218 extern int random_r (struct random_data *__restrict __buf,
13219  int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
13220 
13221 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
13222  throw () __attribute__ ((__nonnull__ (2)));
13223 
13224 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
13225  size_t __statelen,
13226  struct random_data *__restrict __buf)
13227  throw () __attribute__ ((__nonnull__ (2, 4)));
13228 
13229 extern int setstate_r (char *__restrict __statebuf,
13230  struct random_data *__restrict __buf)
13231  throw () __attribute__ ((__nonnull__ (1, 2)));
13232 
13233 
13234 
13235 
13236 
13237 
13238 extern int rand (void) throw ();
13239 
13240 extern void srand (unsigned int __seed) throw ();
13241 
13242 
13243 
13244 
13245 extern int rand_r (unsigned int *__seed) throw ();
13246 
13247 
13248 
13249 
13250 
13251 
13252 
13253 extern double drand48 (void) throw ();
13254 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
13255 
13256 
13257 extern long int lrand48 (void) throw ();
13258 extern long int nrand48 (unsigned short int __xsubi[3])
13259  throw () __attribute__ ((__nonnull__ (1)));
13260 
13261 
13262 extern long int mrand48 (void) throw ();
13263 extern long int jrand48 (unsigned short int __xsubi[3])
13264  throw () __attribute__ ((__nonnull__ (1)));
13265 
13266 
13267 extern void srand48 (long int __seedval) throw ();
13268 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
13269  throw () __attribute__ ((__nonnull__ (1)));
13270 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
13271 
13272 
13273 
13274 
13275 
13276 struct drand48_data
13277  {
13278  unsigned short int __x[3];
13279  unsigned short int __old_x[3];
13280  unsigned short int __c;
13281  unsigned short int __init;
13282  __extension__ unsigned long long int __a;
13283 
13284  };
13285 
13286 
13287 extern int drand48_r (struct drand48_data *__restrict __buffer,
13288  double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
13289 extern int erand48_r (unsigned short int __xsubi[3],
13290  struct drand48_data *__restrict __buffer,
13291  double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
13292 
13293 
13294 extern int lrand48_r (struct drand48_data *__restrict __buffer,
13295  long int *__restrict __result)
13296  throw () __attribute__ ((__nonnull__ (1, 2)));
13297 extern int nrand48_r (unsigned short int __xsubi[3],
13298  struct drand48_data *__restrict __buffer,
13299  long int *__restrict __result)
13300  throw () __attribute__ ((__nonnull__ (1, 2)));
13301 
13302 
13303 extern int mrand48_r (struct drand48_data *__restrict __buffer,
13304  long int *__restrict __result)
13305  throw () __attribute__ ((__nonnull__ (1, 2)));
13306 extern int jrand48_r (unsigned short int __xsubi[3],
13307  struct drand48_data *__restrict __buffer,
13308  long int *__restrict __result)
13309  throw () __attribute__ ((__nonnull__ (1, 2)));
13310 
13311 
13312 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
13313  throw () __attribute__ ((__nonnull__ (2)));
13314 
13315 extern int seed48_r (unsigned short int __seed16v[3],
13316  struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
13317 
13318 extern int lcong48_r (unsigned short int __param[7],
13319  struct drand48_data *__buffer)
13320  throw () __attribute__ ((__nonnull__ (1, 2)));
13321 # 466 "/usr/include/stdlib.h" 3 4
13322 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
13323 
13324 extern void *calloc (size_t __nmemb, size_t __size)
13325  throw () __attribute__ ((__malloc__)) ;
13326 # 480 "/usr/include/stdlib.h" 3 4
13327 extern void *realloc (void *__ptr, size_t __size)
13328  throw () __attribute__ ((__warn_unused_result__));
13329 
13330 extern void free (void *__ptr) throw ();
13331 
13332 
13333 
13334 
13335 extern void cfree (void *__ptr) throw ();
13336 
13337 
13338 
13339 
13340 # 1 "/usr/include/alloca.h" 1 3 4
13341 # 24 "/usr/include/alloca.h" 3 4
13342 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13343 # 25 "/usr/include/alloca.h" 2 3 4
13344 
13345 extern "C" {
13346 
13347 
13348 
13349 
13350 
13351 extern void *alloca (size_t __size) throw ();
13352 
13353 
13354 
13355 
13356 
13357 }
13358 # 493 "/usr/include/stdlib.h" 2 3 4
13359 
13360 
13361 
13362 
13363 
13364 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
13365 
13366 
13367 
13368 
13369 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
13370  throw () __attribute__ ((__nonnull__ (1))) ;
13371 
13372 
13373 
13374 
13375 extern void *aligned_alloc (size_t __alignment, size_t __size)
13376  throw () __attribute__ ((__malloc__)) ;
13377 
13378 
13379 
13380 
13381 extern void abort (void) throw () __attribute__ ((__noreturn__));
13382 
13383 
13384 
13385 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
13386 
13387 
13388 
13389 
13390 extern "C++" int at_quick_exit (void (*__func) (void))
13391  throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
13392 # 535 "/usr/include/stdlib.h" 3 4
13393 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
13394  throw () __attribute__ ((__nonnull__ (1)));
13395 
13396 
13397 
13398 
13399 
13400 
13401 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
13402 
13403 
13404 
13405 
13406 
13407 extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__));
13408 
13409 
13410 
13411 
13412 
13413 
13414 
13415 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
13416 
13417 
13418 
13419 
13420 
13421 
13422 extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
13423 
13424 
13425 
13426 
13427 
13428 extern char *secure_getenv (const char *__name)
13429  throw () __attribute__ ((__nonnull__ (1))) ;
13430 
13431 
13432 
13433 
13434 
13435 
13436 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
13437 
13438 
13439 
13440 
13441 
13442 extern int setenv (const char *__name, const char *__value, int __replace)
13443  throw () __attribute__ ((__nonnull__ (2)));
13444 
13445 
13446 extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
13447 
13448 
13449 
13450 
13451 
13452 
13453 extern int clearenv (void) throw ();
13454 # 606 "/usr/include/stdlib.h" 3 4
13455 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
13456 # 620 "/usr/include/stdlib.h" 3 4
13457 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
13458 # 630 "/usr/include/stdlib.h" 3 4
13459 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
13460 # 642 "/usr/include/stdlib.h" 3 4
13461 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
13462 # 652 "/usr/include/stdlib.h" 3 4
13463 extern int mkstemps64 (char *__template, int __suffixlen)
13464  __attribute__ ((__nonnull__ (1))) ;
13465 # 663 "/usr/include/stdlib.h" 3 4
13466 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
13467 # 674 "/usr/include/stdlib.h" 3 4
13468 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
13469 # 684 "/usr/include/stdlib.h" 3 4
13470 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
13471 # 694 "/usr/include/stdlib.h" 3 4
13472 extern int mkostemps (char *__template, int __suffixlen, int __flags)
13473  __attribute__ ((__nonnull__ (1))) ;
13474 # 706 "/usr/include/stdlib.h" 3 4
13475 extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
13476  __attribute__ ((__nonnull__ (1))) ;
13477 # 717 "/usr/include/stdlib.h" 3 4
13478 extern int system (const char *__command) ;
13479 
13480 
13481 
13482 
13483 
13484 
13485 extern char *canonicalize_file_name (const char *__name)
13486  throw () __attribute__ ((__nonnull__ (1))) ;
13487 # 734 "/usr/include/stdlib.h" 3 4
13488 extern char *realpath (const char *__restrict __name,
13489  char *__restrict __resolved) throw () ;
13490 
13491 
13492 
13493 
13494 
13495 
13496 typedef int (*__compar_fn_t) (const void *, const void *);
13497 
13498 
13499 typedef __compar_fn_t comparison_fn_t;
13500 
13501 
13502 
13503 typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
13504 
13505 
13506 
13507 
13508 
13509 extern void *bsearch (const void *__key, const void *__base,
13510  size_t __nmemb, size_t __size, __compar_fn_t __compar)
13511  __attribute__ ((__nonnull__ (1, 2, 5))) ;
13512 
13513 
13514 
13515 
13516 
13517 
13518 
13519 extern void qsort (void *__base, size_t __nmemb, size_t __size,
13520  __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
13521 
13522 extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
13523  __compar_d_fn_t __compar, void *__arg)
13524  __attribute__ ((__nonnull__ (1, 4)));
13525 
13526 
13527 
13528 
13529 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
13530 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
13531 
13532 
13533 
13534 __extension__ extern long long int llabs (long long int __x)
13535  throw () __attribute__ ((__const__)) ;
13536 
13537 
13538 
13539 
13540 
13541 
13542 
13543 extern div_t div (int __numer, int __denom)
13544  throw () __attribute__ ((__const__)) ;
13545 extern ldiv_t ldiv (long int __numer, long int __denom)
13546  throw () __attribute__ ((__const__)) ;
13547 
13548 
13549 
13550 
13551 __extension__ extern lldiv_t lldiv (long long int __numer,
13552  long long int __denom)
13553  throw () __attribute__ ((__const__)) ;
13554 # 812 "/usr/include/stdlib.h" 3 4
13555 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
13556  int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
13557 
13558 
13559 
13560 
13561 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
13562  int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
13563 
13564 
13565 
13566 
13567 extern char *gcvt (double __value, int __ndigit, char *__buf)
13568  throw () __attribute__ ((__nonnull__ (3))) ;
13569 
13570 
13571 
13572 
13573 extern char *qecvt (long double __value, int __ndigit,
13574  int *__restrict __decpt, int *__restrict __sign)
13575  throw () __attribute__ ((__nonnull__ (3, 4))) ;
13576 extern char *qfcvt (long double __value, int __ndigit,
13577  int *__restrict __decpt, int *__restrict __sign)
13578  throw () __attribute__ ((__nonnull__ (3, 4))) ;
13579 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
13580  throw () __attribute__ ((__nonnull__ (3))) ;
13581 
13582 
13583 
13584 
13585 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
13586  int *__restrict __sign, char *__restrict __buf,
13587  size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13588 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
13589  int *__restrict __sign, char *__restrict __buf,
13590  size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13591 
13592 extern int qecvt_r (long double __value, int __ndigit,
13593  int *__restrict __decpt, int *__restrict __sign,
13594  char *__restrict __buf, size_t __len)
13595  throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13596 extern int qfcvt_r (long double __value, int __ndigit,
13597  int *__restrict __decpt, int *__restrict __sign,
13598  char *__restrict __buf, size_t __len)
13599  throw () __attribute__ ((__nonnull__ (3, 4, 5)));
13600 
13601 
13602 
13603 
13604 
13605 
13606 extern int mblen (const char *__s, size_t __n) throw ();
13607 
13608 
13609 extern int mbtowc (wchar_t *__restrict __pwc,
13610  const char *__restrict __s, size_t __n) throw ();
13611 
13612 
13613 extern int wctomb (char *__s, wchar_t __wchar) throw ();
13614 
13615 
13616 
13617 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
13618  const char *__restrict __s, size_t __n) throw ();
13619 
13620 extern size_t wcstombs (char *__restrict __s,
13621  const wchar_t *__restrict __pwcs, size_t __n)
13622  throw ();
13623 # 888 "/usr/include/stdlib.h" 3 4
13624 extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
13625 # 899 "/usr/include/stdlib.h" 3 4
13626 extern int getsubopt (char **__restrict __optionp,
13627  char *const *__restrict __tokens,
13628  char **__restrict __valuep)
13629  throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
13630 
13631 
13632 
13633 
13634 
13635 extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1)));
13636 
13637 
13638 
13639 
13640 
13641 
13642 
13643 extern int posix_openpt (int __oflag) ;
13644 
13645 
13646 
13647 
13648 
13649 
13650 
13651 extern int grantpt (int __fd) throw ();
13652 
13653 
13654 
13655 extern int unlockpt (int __fd) throw ();
13656 
13657 
13658 
13659 
13660 extern char *ptsname (int __fd) throw () ;
13661 
13662 
13663 
13664 
13665 
13666 
13667 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
13668  throw () __attribute__ ((__nonnull__ (2)));
13669 
13670 
13671 extern int getpt (void);
13672 
13673 
13674 
13675 
13676 
13677 
13678 extern int getloadavg (double __loadavg[], int __nelem)
13679  throw () __attribute__ ((__nonnull__ (1)));
13680 
13681 
13682 
13683 # 1 "/usr/include/bits/stdlib-float.h" 1 3 4
13684 # 956 "/usr/include/stdlib.h" 2 3 4
13685 # 968 "/usr/include/stdlib.h" 3 4
13686 }
13687 # 73 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 2 3
13688 # 114 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13689 namespace std __attribute__ ((__visibility__ ("default")))
13690 {
13691 
13692 
13693  using ::div_t;
13694  using ::ldiv_t;
13695 
13696  using ::abort;
13697  using ::abs;
13698  using ::atexit;
13699 
13700 
13701  using ::at_quick_exit;
13702 
13703 
13704  using ::atof;
13705  using ::atoi;
13706  using ::atol;
13707  using ::bsearch;
13708  using ::calloc;
13709  using ::div;
13710  using ::exit;
13711  using ::free;
13712  using ::getenv;
13713  using ::labs;
13714  using ::ldiv;
13715  using ::malloc;
13716 
13717  using ::mblen;
13718  using ::mbstowcs;
13719  using ::mbtowc;
13720 
13721  using ::qsort;
13722 
13723 
13724  using ::quick_exit;
13725 
13726 
13727  using ::rand;
13728  using ::realloc;
13729  using ::srand;
13730  using ::strtod;
13731  using ::strtol;
13732  using ::strtoul;
13733  using ::system;
13734 
13735  using ::wcstombs;
13736  using ::wctomb;
13737 
13738 
13739 
13740  inline long
13741  abs(long __i) { return __builtin_labs(__i); }
13742 
13743  inline ldiv_t
13744  div(long __i, long __j) { return ldiv(__i, __j); }
13745 
13746 
13747 
13748  inline long long
13749  abs(long long __x) { return __builtin_llabs (__x); }
13750 # 183 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13751 }
13752 # 196 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13753 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
13754 {
13755 
13756 
13757 
13758  using ::lldiv_t;
13759 
13760 
13761 
13762 
13763 
13764  using ::_Exit;
13765 
13766 
13767 
13768  using ::llabs;
13769 
13770  inline lldiv_t
13771  div(long long __n, long long __d)
13772  { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
13773 
13774  using ::lldiv;
13775 # 228 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
13776  using ::atoll;
13777  using ::strtoll;
13778  using ::strtoull;
13779 
13780  using ::strtof;
13781  using ::strtold;
13782 
13783 
13784 }
13785 
13786 namespace std
13787 {
13788 
13789  using ::__gnu_cxx::lldiv_t;
13790 
13791  using ::__gnu_cxx::_Exit;
13792 
13793  using ::__gnu_cxx::llabs;
13794  using ::__gnu_cxx::div;
13795  using ::__gnu_cxx::lldiv;
13796 
13797  using ::__gnu_cxx::atoll;
13798  using ::__gnu_cxx::strtof;
13799  using ::__gnu_cxx::strtoll;
13800  using ::__gnu_cxx::strtoull;
13801  using ::__gnu_cxx::strtold;
13802 }
13803 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
13804 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 1 3
13805 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 3
13806 
13807 
13808 
13809 
13810 # 1 "/usr/include/wchar.h" 1 3 4
13811 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwchar" 2 3
13812 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
13813 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 1 3
13814 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
13815 
13816 
13817 # 1 "/usr/include/stdio.h" 1 3 4
13818 # 29 "/usr/include/stdio.h" 3 4
13819 extern "C" {
13820 
13821 
13822 
13823 
13824 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13825 # 34 "/usr/include/stdio.h" 2 3 4
13826 # 74 "/usr/include/stdio.h" 3 4
13827 # 1 "/usr/include/libio.h" 1 3 4
13828 # 31 "/usr/include/libio.h" 3 4
13829 # 1 "/usr/include/_G_config.h" 1 3 4
13830 # 15 "/usr/include/_G_config.h" 3 4
13831 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3 4
13832 # 16 "/usr/include/_G_config.h" 2 3 4
13833 
13834 
13835 
13836 
13837 # 1 "/usr/include/wchar.h" 1 3 4
13838 # 21 "/usr/include/_G_config.h" 2 3 4
13839 typedef struct
13840 {
13841  __off_t __pos;
13842  __mbstate_t __state;
13843 } _G_fpos_t;
13844 typedef struct
13845 {
13846  __off64_t __pos;
13847  __mbstate_t __state;
13848 } _G_fpos64_t;
13849 # 32 "/usr/include/libio.h" 2 3 4
13850 # 144 "/usr/include/libio.h" 3 4
13851 struct _IO_jump_t; struct _IO_FILE;
13852 # 154 "/usr/include/libio.h" 3 4
13853 typedef void _IO_lock_t;
13854 
13855 
13856 
13857 
13858 
13859 struct _IO_marker {
13860  struct _IO_marker *_next;
13861  struct _IO_FILE *_sbuf;
13862 
13863 
13864 
13865  int _pos;
13866 # 177 "/usr/include/libio.h" 3 4
13867 };
13868 
13869 
13870 enum __codecvt_result
13871 {
13872  __codecvt_ok,
13873  __codecvt_partial,
13874  __codecvt_error,
13875  __codecvt_noconv
13876 };
13877 # 245 "/usr/include/libio.h" 3 4
13878 struct _IO_FILE {
13879  int _flags;
13880 
13881 
13882 
13883 
13884  char* _IO_read_ptr;
13885  char* _IO_read_end;
13886  char* _IO_read_base;
13887  char* _IO_write_base;
13888  char* _IO_write_ptr;
13889  char* _IO_write_end;
13890  char* _IO_buf_base;
13891  char* _IO_buf_end;
13892 
13893  char *_IO_save_base;
13894  char *_IO_backup_base;
13895  char *_IO_save_end;
13896 
13897  struct _IO_marker *_markers;
13898 
13899  struct _IO_FILE *_chain;
13900 
13901  int _fileno;
13902 
13903 
13904 
13905  int _flags2;
13906 
13907  __off_t _old_offset;
13908 
13909 
13910 
13911  unsigned short _cur_column;
13912  signed char _vtable_offset;
13913  char _shortbuf[1];
13914 
13915 
13916 
13917  _IO_lock_t *_lock;
13918 # 293 "/usr/include/libio.h" 3 4
13919  __off64_t _offset;
13920 # 302 "/usr/include/libio.h" 3 4
13921  void *__pad1;
13922  void *__pad2;
13923  void *__pad3;
13924  void *__pad4;
13925  size_t __pad5;
13926 
13927  int _mode;
13928 
13929  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
13930 
13931 };
13932 
13933 
13934 
13935 
13936 
13937 struct _IO_FILE_plus;
13938 
13939 extern struct _IO_FILE_plus _IO_2_1_stdin_;
13940 extern struct _IO_FILE_plus _IO_2_1_stdout_;
13941 extern struct _IO_FILE_plus _IO_2_1_stderr_;
13942 # 338 "/usr/include/libio.h" 3 4
13943 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
13944 
13945 
13946 
13947 
13948 
13949 
13950 
13951 typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
13952  size_t __n);
13953 
13954 
13955 
13956 
13957 
13958 
13959 
13960 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
13961 
13962 
13963 typedef int __io_close_fn (void *__cookie);
13964 
13965 
13966 
13967 
13968 typedef __io_read_fn cookie_read_function_t;
13969 typedef __io_write_fn cookie_write_function_t;
13970 typedef __io_seek_fn cookie_seek_function_t;
13971 typedef __io_close_fn cookie_close_function_t;
13972 
13973 
13974 typedef struct
13975 {
13976  __io_read_fn *read;
13977  __io_write_fn *write;
13978  __io_seek_fn *seek;
13979  __io_close_fn *close;
13982 
13983 struct _IO_cookie_file;
13984 
13985 
13986 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
13987  void *__cookie, _IO_cookie_io_functions_t __fns);
13988 
13989 
13990 
13991 
13992 extern "C" {
13993 
13994 
13995 extern int __underflow (_IO_FILE *);
13996 extern int __uflow (_IO_FILE *);
13997 extern int __overflow (_IO_FILE *, int);
13998 # 434 "/usr/include/libio.h" 3 4
13999 extern int _IO_getc (_IO_FILE *__fp);
14000 extern int _IO_putc (int __c, _IO_FILE *__fp);
14001 extern int _IO_feof (_IO_FILE *__fp) throw ();
14002 extern int _IO_ferror (_IO_FILE *__fp) throw ();
14003 
14004 extern int _IO_peekc_locked (_IO_FILE *__fp);
14005 
14006 
14007 
14008 
14009 
14010 extern void _IO_flockfile (_IO_FILE *) throw ();
14011 extern void _IO_funlockfile (_IO_FILE *) throw ();
14012 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
14013 # 464 "/usr/include/libio.h" 3 4
14014 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
14015  __gnuc_va_list, int *__restrict);
14016 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
14017  __gnuc_va_list);
14018 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
14019 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
14020 
14021 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
14022 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
14023 
14024 extern void _IO_free_backup_area (_IO_FILE *) throw ();
14025 # 526 "/usr/include/libio.h" 3 4
14026 }
14027 # 75 "/usr/include/stdio.h" 2 3 4
14028 
14029 
14030 
14031 
14032 typedef __gnuc_va_list va_list;
14033 # 110 "/usr/include/stdio.h" 3 4
14034 typedef _G_fpos_t fpos_t;
14035 
14036 
14037 
14038 
14039 
14040 typedef _G_fpos64_t fpos64_t;
14041 # 164 "/usr/include/stdio.h" 3 4
14042 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
14043 # 165 "/usr/include/stdio.h" 2 3 4
14044 
14045 
14046 
14047 extern struct _IO_FILE *stdin;
14048 extern struct _IO_FILE *stdout;
14049 extern struct _IO_FILE *stderr;
14050 
14051 
14052 
14053 
14054 
14055 
14056 
14057 extern int remove (const char *__filename) throw ();
14058 
14059 extern int rename (const char *__old, const char *__new) throw ();
14060 
14061 
14062 
14063 
14064 extern int renameat (int __oldfd, const char *__old, int __newfd,
14065  const char *__new) throw ();
14066 # 195 "/usr/include/stdio.h" 3 4
14067 extern FILE *tmpfile (void) ;
14068 # 205 "/usr/include/stdio.h" 3 4
14069 extern FILE *tmpfile64 (void) ;
14070 
14071 
14072 
14073 extern char *tmpnam (char *__s) throw () ;
14074 
14075 
14076 
14077 
14078 
14079 extern char *tmpnam_r (char *__s) throw () ;
14080 # 227 "/usr/include/stdio.h" 3 4
14081 extern char *tempnam (const char *__dir, const char *__pfx)
14082  throw () __attribute__ ((__malloc__)) ;
14083 # 237 "/usr/include/stdio.h" 3 4
14084 extern int fclose (FILE *__stream);
14085 
14086 
14087 
14088 
14089 extern int fflush (FILE *__stream);
14090 # 252 "/usr/include/stdio.h" 3 4
14091 extern int fflush_unlocked (FILE *__stream);
14092 # 262 "/usr/include/stdio.h" 3 4
14093 extern int fcloseall (void);
14094 # 272 "/usr/include/stdio.h" 3 4
14095 extern FILE *fopen (const char *__restrict __filename,
14096  const char *__restrict __modes) ;
14097 
14098 
14099 
14100 
14101 extern FILE *freopen (const char *__restrict __filename,
14102  const char *__restrict __modes,
14103  FILE *__restrict __stream) ;
14104 # 297 "/usr/include/stdio.h" 3 4
14105 extern FILE *fopen64 (const char *__restrict __filename,
14106  const char *__restrict __modes) ;
14107 extern FILE *freopen64 (const char *__restrict __filename,
14108  const char *__restrict __modes,
14109  FILE *__restrict __stream) ;
14110 
14111 
14112 
14113 
14114 extern FILE *fdopen (int __fd, const char *__modes) throw () ;
14115 
14116 
14117 
14118 
14119 
14120 extern FILE *fopencookie (void *__restrict __magic_cookie,
14121  const char *__restrict __modes,
14122  _IO_cookie_io_functions_t __io_funcs) throw () ;
14123 
14124 
14125 
14126 
14127 extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
14128  throw () ;
14129 
14130 
14131 
14132 
14133 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
14134 
14135 
14136 
14137 
14138 
14139 
14140 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
14141 
14142 
14143 
14144 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
14145  int __modes, size_t __n) throw ();
14146 
14147 
14148 
14149 
14150 
14151 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
14152  size_t __size) throw ();
14153 
14154 
14155 extern void setlinebuf (FILE *__stream) throw ();
14156 # 356 "/usr/include/stdio.h" 3 4
14157 extern int fprintf (FILE *__restrict __stream,
14158  const char *__restrict __format, ...);
14159 
14160 
14161 
14162 
14163 extern int printf (const char *__restrict __format, ...);
14164 
14165 extern int sprintf (char *__restrict __s,
14166  const char *__restrict __format, ...) throw ();
14167 
14168 
14169 
14170 
14171 
14172 extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
14173  __gnuc_va_list __arg);
14174 
14175 
14176 
14177 
14178 extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
14179 
14180 extern int vsprintf (char *__restrict __s, const char *__restrict __format,
14181  __gnuc_va_list __arg) throw ();
14182 
14183 
14184 
14185 
14186 
14187 extern int snprintf (char *__restrict __s, size_t __maxlen,
14188  const char *__restrict __format, ...)
14189  throw () __attribute__ ((__format__ (__printf__, 3, 4)));
14190 
14191 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
14192  const char *__restrict __format, __gnuc_va_list __arg)
14193  throw () __attribute__ ((__format__ (__printf__, 3, 0)));
14194 
14195 
14196 
14197 
14198 
14199 
14200 extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
14201  __gnuc_va_list __arg)
14202  throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
14203 extern int __asprintf (char **__restrict __ptr,
14204  const char *__restrict __fmt, ...)
14205  throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
14206 extern int asprintf (char **__restrict __ptr,
14207  const char *__restrict __fmt, ...)
14208  throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
14209 
14210 
14211 
14212 
14213 extern int vdprintf (int __fd, const char *__restrict __fmt,
14214  __gnuc_va_list __arg)
14215  __attribute__ ((__format__ (__printf__, 2, 0)));
14216 extern int dprintf (int __fd, const char *__restrict __fmt, ...)
14217  __attribute__ ((__format__ (__printf__, 2, 3)));
14218 # 425 "/usr/include/stdio.h" 3 4
14219 extern int fscanf (FILE *__restrict __stream,
14220  const char *__restrict __format, ...) ;
14221 
14222 
14223 
14224 
14225 extern int scanf (const char *__restrict __format, ...) ;
14226 
14227 extern int sscanf (const char *__restrict __s,
14228  const char *__restrict __format, ...) throw ();
14229 # 471 "/usr/include/stdio.h" 3 4
14230 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
14231  __gnuc_va_list __arg)
14232  __attribute__ ((__format__ (__scanf__, 2, 0))) ;
14233 
14234 
14235 
14236 
14237 
14238 extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
14239  __attribute__ ((__format__ (__scanf__, 1, 0))) ;
14240 
14241 
14242 extern int vsscanf (const char *__restrict __s,
14243  const char *__restrict __format, __gnuc_va_list __arg)
14244  throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
14245 # 531 "/usr/include/stdio.h" 3 4
14246 extern int fgetc (FILE *__stream);
14247 extern int getc (FILE *__stream);
14248 
14249 
14250 
14251 
14252 
14253 extern int getchar (void);
14254 # 550 "/usr/include/stdio.h" 3 4
14255 extern int getc_unlocked (FILE *__stream);
14256 extern int getchar_unlocked (void);
14257 # 561 "/usr/include/stdio.h" 3 4
14258 extern int fgetc_unlocked (FILE *__stream);
14259 # 573 "/usr/include/stdio.h" 3 4
14260 extern int fputc (int __c, FILE *__stream);
14261 extern int putc (int __c, FILE *__stream);
14262 
14263 
14264 
14265 
14266 
14267 extern int putchar (int __c);
14268 # 594 "/usr/include/stdio.h" 3 4
14269 extern int fputc_unlocked (int __c, FILE *__stream);
14270 
14271 
14272 
14273 
14274 
14275 
14276 
14277 extern int putc_unlocked (int __c, FILE *__stream);
14278 extern int putchar_unlocked (int __c);
14279 
14280 
14281 
14282 
14283 
14284 
14285 extern int getw (FILE *__stream);
14286 
14287 
14288 extern int putw (int __w, FILE *__stream);
14289 # 622 "/usr/include/stdio.h" 3 4
14290 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
14291  ;
14292 # 638 "/usr/include/stdio.h" 3 4
14293 extern char *gets (char *__s) __attribute__ ((__deprecated__));
14294 # 649 "/usr/include/stdio.h" 3 4
14295 extern char *fgets_unlocked (char *__restrict __s, int __n,
14296  FILE *__restrict __stream) ;
14297 # 665 "/usr/include/stdio.h" 3 4
14298 extern __ssize_t __getdelim (char **__restrict __lineptr,
14299  size_t *__restrict __n, int __delimiter,
14300  FILE *__restrict __stream) ;
14301 extern __ssize_t getdelim (char **__restrict __lineptr,
14302  size_t *__restrict __n, int __delimiter,
14303  FILE *__restrict __stream) ;
14304 
14305 
14306 
14307 
14308 
14309 
14310 
14311 extern __ssize_t getline (char **__restrict __lineptr,
14312  size_t *__restrict __n,
14313  FILE *__restrict __stream) ;
14314 # 689 "/usr/include/stdio.h" 3 4
14315 extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
14316 
14317 
14318 
14319 
14320 
14321 extern int puts (const char *__s);
14322 
14323 
14324 
14325 
14326 
14327 
14328 extern int ungetc (int __c, FILE *__stream);
14329 
14330 
14331 
14332 
14333 
14334 
14335 extern size_t fread (void *__restrict __ptr, size_t __size,
14336  size_t __n, FILE *__restrict __stream) ;
14337 
14338 
14339 
14340 
14341 extern size_t fwrite (const void *__restrict __ptr, size_t __size,
14342  size_t __n, FILE *__restrict __s);
14343 # 726 "/usr/include/stdio.h" 3 4
14344 extern int fputs_unlocked (const char *__restrict __s,
14345  FILE *__restrict __stream);
14346 # 737 "/usr/include/stdio.h" 3 4
14347 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
14348  size_t __n, FILE *__restrict __stream) ;
14349 extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
14350  size_t __n, FILE *__restrict __stream);
14351 # 749 "/usr/include/stdio.h" 3 4
14352 extern int fseek (FILE *__stream, long int __off, int __whence);
14353 
14354 
14355 
14356 
14357 extern long int ftell (FILE *__stream) ;
14358 
14359 
14360 
14361 
14362 extern void rewind (FILE *__stream);
14363 # 773 "/usr/include/stdio.h" 3 4
14364 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
14365 
14366 
14367 
14368 
14369 extern __off_t ftello (FILE *__stream) ;
14370 # 798 "/usr/include/stdio.h" 3 4
14371 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
14372 
14373 
14374 
14375 
14376 extern int fsetpos (FILE *__stream, const fpos_t *__pos);
14377 # 818 "/usr/include/stdio.h" 3 4
14378 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
14379 extern __off64_t ftello64 (FILE *__stream) ;
14380 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
14381 extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
14382 
14383 
14384 
14385 
14386 extern void clearerr (FILE *__stream) throw ();
14387 
14388 extern int feof (FILE *__stream) throw () ;
14389 
14390 extern int ferror (FILE *__stream) throw () ;
14391 
14392 
14393 
14394 
14395 extern void clearerr_unlocked (FILE *__stream) throw ();
14396 extern int feof_unlocked (FILE *__stream) throw () ;
14397 extern int ferror_unlocked (FILE *__stream) throw () ;
14398 # 846 "/usr/include/stdio.h" 3 4
14399 extern void perror (const char *__s);
14400 
14401 
14402 
14403 
14404 
14405 
14406 
14407 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
14408 # 26 "/usr/include/bits/sys_errlist.h" 3 4
14409 extern int sys_nerr;
14410 extern const char *const sys_errlist[];
14411 
14412 
14413 extern int _sys_nerr;
14414 extern const char *const _sys_errlist[];
14415 # 854 "/usr/include/stdio.h" 2 3 4
14416 
14417 
14418 
14419 
14420 extern int fileno (FILE *__stream) throw () ;
14421 
14422 
14423 
14424 
14425 extern int fileno_unlocked (FILE *__stream) throw () ;
14426 # 873 "/usr/include/stdio.h" 3 4
14427 extern FILE *popen (const char *__command, const char *__modes) ;
14428 
14429 
14430 
14431 
14432 
14433 extern int pclose (FILE *__stream);
14434 
14435 
14436 
14437 
14438 
14439 extern char *ctermid (char *__s) throw ();
14440 
14441 
14442 
14443 
14444 
14445 extern char *cuserid (char *__s);
14446 
14447 
14448 
14449 
14450 struct obstack;
14451 
14452 
14453 extern int obstack_printf (struct obstack *__restrict __obstack,
14454  const char *__restrict __format, ...)
14455  throw () __attribute__ ((__format__ (__printf__, 2, 3)));
14456 extern int obstack_vprintf (struct obstack *__restrict __obstack,
14457  const char *__restrict __format,
14458  __gnuc_va_list __args)
14459  throw () __attribute__ ((__format__ (__printf__, 2, 0)));
14460 
14461 
14462 
14463 
14464 
14465 
14466 
14467 extern void flockfile (FILE *__stream) throw ();
14468 
14469 
14470 
14471 extern int ftrylockfile (FILE *__stream) throw () ;
14472 
14473 
14474 extern void funlockfile (FILE *__stream) throw ();
14475 # 943 "/usr/include/stdio.h" 3 4
14476 }
14477 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 2 3
14478 # 96 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14479 namespace std
14480 {
14481  using ::FILE;
14482  using ::fpos_t;
14483 
14484  using ::clearerr;
14485  using ::fclose;
14486  using ::feof;
14487  using ::ferror;
14488  using ::fflush;
14489  using ::fgetc;
14490  using ::fgetpos;
14491  using ::fgets;
14492  using ::fopen;
14493  using ::fprintf;
14494  using ::fputc;
14495  using ::fputs;
14496  using ::fread;
14497  using ::freopen;
14498  using ::fscanf;
14499  using ::fseek;
14500  using ::fsetpos;
14501  using ::ftell;
14502  using ::fwrite;
14503  using ::getc;
14504  using ::getchar;
14505 
14506 
14507  using ::gets;
14508 
14509  using ::perror;
14510  using ::printf;
14511  using ::putc;
14512  using ::putchar;
14513  using ::puts;
14514  using ::remove;
14515  using ::rename;
14516  using ::rewind;
14517  using ::scanf;
14518  using ::setbuf;
14519  using ::setvbuf;
14520  using ::sprintf;
14521  using ::sscanf;
14522  using ::tmpfile;
14523 
14524  using ::tmpnam;
14525 
14526  using ::ungetc;
14527  using ::vfprintf;
14528  using ::vprintf;
14529  using ::vsprintf;
14530 }
14531 # 157 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14532 namespace __gnu_cxx
14533 {
14534 # 175 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdio" 3
14535  using ::snprintf;
14536  using ::vfscanf;
14537  using ::vscanf;
14538  using ::vsnprintf;
14539  using ::vsscanf;
14540 
14541 }
14542 
14543 namespace std
14544 {
14545  using ::__gnu_cxx::snprintf;
14546  using ::__gnu_cxx::vfscanf;
14547  using ::__gnu_cxx::vscanf;
14548  using ::__gnu_cxx::vsnprintf;
14549  using ::__gnu_cxx::vsscanf;
14550 }
14551 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
14552 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 1 3
14553 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 3
14554 
14555 # 1 "/usr/include/errno.h" 1 3 4
14556 # 31 "/usr/include/errno.h" 3 4
14557 extern "C" {
14558 
14559 
14560 
14561 
14562 # 1 "/usr/include/bits/errno.h" 1 3 4
14563 # 24 "/usr/include/bits/errno.h" 3 4
14564 # 1 "/usr/include/linux/errno.h" 1 3 4
14565 # 1 "/usr/include/asm/errno.h" 1 3 4
14566 # 1 "/usr/include/asm-generic/errno.h" 1 3 4
14567 
14568 
14569 
14570 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
14571 # 5 "/usr/include/asm-generic/errno.h" 2 3 4
14572 # 2 "/usr/include/asm/errno.h" 2 3 4
14573 # 2 "/usr/include/linux/errno.h" 2 3 4
14574 # 25 "/usr/include/bits/errno.h" 2 3 4
14575 # 50 "/usr/include/bits/errno.h" 3 4
14576 extern int *__errno_location (void) throw () __attribute__ ((__const__));
14577 # 36 "/usr/include/errno.h" 2 3 4
14578 # 54 "/usr/include/errno.h" 3 4
14579 extern char *program_invocation_name, *program_invocation_short_name;
14580 
14581 
14582 
14583 }
14584 # 68 "/usr/include/errno.h" 3 4
14585 typedef int error_t;
14586 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cerrno" 2 3
14587 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/string_conversions.h" 2 3
14588 
14589 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
14590 {
14591 
14592 
14593 
14594  template<typename _TRet, typename _Ret = _TRet, typename _CharT,
14595  typename... _Base>
14596  _Ret
14597  __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...),
14598  const char* __name, const _CharT* __str, std::size_t* __idx,
14599  _Base... __base)
14600  {
14601  _Ret __ret;
14602 
14603  _CharT* __endptr;
14604  (*__errno_location ()) = 0;
14605  const _TRet __tmp = __convf(__str, &__endptr, __base...);
14606 
14607  if (__endptr == __str)
14608  std::__throw_invalid_argument(__name);
14609  else if ((*__errno_location ()) == 34
14610  || (std::__are_same<_Ret, int>::__value
14611  && (__tmp < __numeric_traits<int>::__min
14612  || __tmp > __numeric_traits<int>::__max)))
14613  std::__throw_out_of_range(__name);
14614  else
14615  __ret = __tmp;
14616 
14617  if (__idx)
14618  *__idx = __endptr - __str;
14619 
14620  return __ret;
14621  }
14622 
14623 
14624  template<typename _String, typename _CharT = typename _String::value_type>
14625  _String
14626  __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*,
14627  __builtin_va_list), std::size_t __n,
14628  const _CharT* __fmt, ...)
14629  {
14630 
14631 
14632  _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
14633  * __n));
14634 
14635  __builtin_va_list __args;
14636  __builtin_va_start(__args, __fmt);
14637 
14638  const int __len = __convf(__s, __n, __fmt, __args);
14639 
14640  __builtin_va_end(__args);
14641 
14642  return _String(__s, __s + __len);
14643  }
14644 
14645 
14646 }
14647 # 2835 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
14648 
14649 namespace std __attribute__ ((__visibility__ ("default")))
14650 {
14651 
14652 
14653 
14654  inline int
14655  stoi(const string& __str, size_t* __idx = 0, int __base = 10)
14656  { return __gnu_cxx::__stoa<long, int>(&std::strtol, "stoi", __str.c_str(),
14657  __idx, __base); }
14658 
14659  inline long
14660  stol(const string& __str, size_t* __idx = 0, int __base = 10)
14661  { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(),
14662  __idx, __base); }
14663 
14664  inline unsigned long
14665  stoul(const string& __str, size_t* __idx = 0, int __base = 10)
14666  { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(),
14667  __idx, __base); }
14668 
14669  inline long long
14670  stoll(const string& __str, size_t* __idx = 0, int __base = 10)
14671  { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(),
14672  __idx, __base); }
14673 
14674  inline unsigned long long
14675  stoull(const string& __str, size_t* __idx = 0, int __base = 10)
14676  { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(),
14677  __idx, __base); }
14678 
14679 
14680  inline float
14681  stof(const string& __str, size_t* __idx = 0)
14682  { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); }
14683 
14684  inline double
14685  stod(const string& __str, size_t* __idx = 0)
14686  { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); }
14687 
14688  inline long double
14689  stold(const string& __str, size_t* __idx = 0)
14690  { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); }
14691 
14692 
14693 
14694 
14695  inline string
14696  to_string(int __val)
14697  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(int),
14698  "%d", __val); }
14699 
14700  inline string
14701  to_string(unsigned __val)
14702  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14703  4 * sizeof(unsigned),
14704  "%u", __val); }
14705 
14706  inline string
14707  to_string(long __val)
14708  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(long),
14709  "%ld", __val); }
14710 
14711  inline string
14712  to_string(unsigned long __val)
14713  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14714  4 * sizeof(unsigned long),
14715  "%lu", __val); }
14716 
14717  inline string
14718  to_string(long long __val)
14719  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14720  4 * sizeof(long long),
14721  "%lld", __val); }
14722 
14723  inline string
14724  to_string(unsigned long long __val)
14725  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
14726  4 * sizeof(unsigned long long),
14727  "%llu", __val); }
14728 
14729  inline string
14730  to_string(float __val)
14731  {
14732  const int __n =
14733  __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
14734  return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14735  "%f", __val);
14736  }
14737 
14738  inline string
14739  to_string(double __val)
14740  {
14741  const int __n =
14742  __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
14743  return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14744  "%f", __val);
14745  }
14746 
14747  inline string
14748  to_string(long double __val)
14749  {
14750  const int __n =
14751  __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
14752  return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
14753  "%Lf", __val);
14754  }
14755 
14756 
14757  inline int
14758  stoi(const wstring& __str, size_t* __idx = 0, int __base = 10)
14759  { return __gnu_cxx::__stoa<long, int>(&std::wcstol, "stoi", __str.c_str(),
14760  __idx, __base); }
14761 
14762  inline long
14763  stol(const wstring& __str, size_t* __idx = 0, int __base = 10)
14764  { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(),
14765  __idx, __base); }
14766 
14767  inline unsigned long
14768  stoul(const wstring& __str, size_t* __idx = 0, int __base = 10)
14769  { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(),
14770  __idx, __base); }
14771 
14772  inline long long
14773  stoll(const wstring& __str, size_t* __idx = 0, int __base = 10)
14774  { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(),
14775  __idx, __base); }
14776 
14777  inline unsigned long long
14778  stoull(const wstring& __str, size_t* __idx = 0, int __base = 10)
14779  { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(),
14780  __idx, __base); }
14781 
14782 
14783  inline float
14784  stof(const wstring& __str, size_t* __idx = 0)
14785  { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); }
14786 
14787  inline double
14788  stod(const wstring& __str, size_t* __idx = 0)
14789  { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); }
14790 
14791  inline long double
14792  stold(const wstring& __str, size_t* __idx = 0)
14793  { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); }
14794 
14795 
14796  inline wstring
14797  to_wstring(int __val)
14798  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 * sizeof(int),
14799  L"%d", __val); }
14800 
14801  inline wstring
14802  to_wstring(unsigned __val)
14803  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14804  4 * sizeof(unsigned),
14805  L"%u", __val); }
14806 
14807  inline wstring
14808  to_wstring(long __val)
14809  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 * sizeof(long),
14810  L"%ld", __val); }
14811 
14812  inline wstring
14813  to_wstring(unsigned long __val)
14814  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14815  4 * sizeof(unsigned long),
14816  L"%lu", __val); }
14817 
14818  inline wstring
14819  to_wstring(long long __val)
14820  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14821  4 * sizeof(long long),
14822  L"%lld", __val); }
14823 
14824  inline wstring
14825  to_wstring(unsigned long long __val)
14826  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
14827  4 * sizeof(unsigned long long),
14828  L"%llu", __val); }
14829 
14830  inline wstring
14831  to_wstring(float __val)
14832  {
14833  const int __n =
14834  __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
14835  return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14836  L"%f", __val);
14837  }
14838 
14839  inline wstring
14840  to_wstring(double __val)
14841  {
14842  const int __n =
14843  __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
14844  return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14845  L"%f", __val);
14846  }
14847 
14848  inline wstring
14849  to_wstring(long double __val)
14850  {
14851  const int __n =
14852  __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
14853  return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
14854  L"%Lf", __val);
14855  }
14856 
14857 
14858 
14859 }
14860 
14861 
14862 
14863 
14864 
14865 
14866 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 1 3
14867 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14868 
14869 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/hash_bytes.h" 1 3
14870 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/hash_bytes.h" 3
14871 
14872 
14873 
14874 namespace std
14875 {
14876 
14877 
14878 
14879 
14880 
14881 
14882 
14883  size_t
14884  _Hash_bytes(const void* __ptr, size_t __len, size_t __seed);
14885 
14886 
14887 
14888 
14889 
14890  size_t
14891  _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed);
14892 
14893 
14894 }
14895 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 2 3
14896 
14897 namespace std __attribute__ ((__visibility__ ("default")))
14898 {
14899 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14900  template<typename _Result, typename _Arg>
14901  struct __hash_base
14902  {
14903  typedef _Result result_type;
14904  typedef _Arg argument_type;
14905  };
14906 
14907 
14908  template<typename _Tp>
14909  struct hash;
14910 
14911 
14912  template<typename _Tp>
14913  struct hash<_Tp*> : public __hash_base<size_t, _Tp*>
14914  {
14915  size_t
14916  operator()(_Tp* __p) const noexcept
14917  { return reinterpret_cast<size_t>(__p); }
14918  };
14919 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/functional_hash.h" 3
14920  template<> struct hash<bool> : public __hash_base<size_t, bool> { size_t operator()(bool __val) const noexcept { return static_cast<size_t>(__val); } };
14921 
14922 
14923  template<> struct hash<char> : public __hash_base<size_t, char> { size_t operator()(char __val) const noexcept { return static_cast<size_t>(__val); } };
14924 
14925 
14926  template<> struct hash<signed char> : public __hash_base<size_t, signed char> { size_t operator()(signed char __val) const noexcept { return static_cast<size_t>(__val); } };
14927 
14928 
14929  template<> struct hash<unsigned char> : public __hash_base<size_t, unsigned char> { size_t operator()(unsigned char __val) const noexcept { return static_cast<size_t>(__val); } };
14930 
14931 
14932  template<> struct hash<wchar_t> : public __hash_base<size_t, wchar_t> { size_t operator()(wchar_t __val) const noexcept { return static_cast<size_t>(__val); } };
14933 
14934 
14935  template<> struct hash<char16_t> : public __hash_base<size_t, char16_t> { size_t operator()(char16_t __val) const noexcept { return static_cast<size_t>(__val); } };
14936 
14937 
14938  template<> struct hash<char32_t> : public __hash_base<size_t, char32_t> { size_t operator()(char32_t __val) const noexcept { return static_cast<size_t>(__val); } };
14939 
14940 
14941  template<> struct hash<short> : public __hash_base<size_t, short> { size_t operator()(short __val) const noexcept { return static_cast<size_t>(__val); } };
14942 
14943 
14944  template<> struct hash<int> : public __hash_base<size_t, int> { size_t operator()(int __val) const noexcept { return static_cast<size_t>(__val); } };
14945 
14946 
14947  template<> struct hash<long> : public __hash_base<size_t, long> { size_t operator()(long __val) const noexcept { return static_cast<size_t>(__val); } };
14948 
14949 
14950  template<> struct hash<long long> : public __hash_base<size_t, long long> { size_t operator()(long long __val) const noexcept { return static_cast<size_t>(__val); } };
14951 
14952 
14953  template<> struct hash<unsigned short> : public __hash_base<size_t, unsigned short> { size_t operator()(unsigned short __val) const noexcept { return static_cast<size_t>(__val); } };
14954 
14955 
14956  template<> struct hash<unsigned int> : public __hash_base<size_t, unsigned int> { size_t operator()(unsigned int __val) const noexcept { return static_cast<size_t>(__val); } };
14957 
14958 
14959  template<> struct hash<unsigned long> : public __hash_base<size_t, unsigned long> { size_t operator()(unsigned long __val) const noexcept { return static_cast<size_t>(__val); } };
14960 
14961 
14962  template<> struct hash<unsigned long long> : public __hash_base<size_t, unsigned long long> { size_t operator()(unsigned long long __val) const noexcept { return static_cast<size_t>(__val); } };
14963 
14964 
14965 
14966  struct _Hash_impl
14967  {
14968  static size_t
14969  hash(const void* __ptr, size_t __clength,
14970  size_t __seed = static_cast<size_t>(0xc70f6907UL))
14971  { return _Hash_bytes(__ptr, __clength, __seed); }
14972 
14973  template<typename _Tp>
14974  static size_t
14975  hash(const _Tp& __val)
14976  { return hash(&__val, sizeof(__val)); }
14977 
14978  template<typename _Tp>
14979  static size_t
14980  __hash_combine(const _Tp& __val, size_t __hash)
14981  { return hash(&__val, sizeof(__val), __hash); }
14982  };
14983 
14984  struct _Fnv_hash_impl
14985  {
14986  static size_t
14987  hash(const void* __ptr, size_t __clength,
14988  size_t __seed = static_cast<size_t>(2166136261UL))
14989  { return _Fnv_hash_bytes(__ptr, __clength, __seed); }
14990 
14991  template<typename _Tp>
14992  static size_t
14993  hash(const _Tp& __val)
14994  { return hash(&__val, sizeof(__val)); }
14995 
14996  template<typename _Tp>
14997  static size_t
14998  __hash_combine(const _Tp& __val, size_t __hash)
14999  { return hash(&__val, sizeof(__val), __hash); }
15000  };
15001 
15002 
15003  template<>
15004  struct hash<float> : public __hash_base<size_t, float>
15005  {
15006  size_t
15007  operator()(float __val) const noexcept
15008  {
15009 
15010  return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0;
15011  }
15012  };
15013 
15014 
15015  template<>
15016  struct hash<double> : public __hash_base<size_t, double>
15017  {
15018  size_t
15019  operator()(double __val) const noexcept
15020  {
15021 
15022  return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0;
15023  }
15024  };
15025 
15026 
15027  template<>
15028  struct hash<long double>
15029  : public __hash_base<size_t, long double>
15030  {
15031  __attribute__ ((__pure__)) size_t
15032  operator()(long double __val) const noexcept;
15033  };
15034 
15035 
15036 
15037 
15038 
15039 
15040 
15041  template<typename _Hash>
15042  struct __is_fast_hash : public std::true_type
15043  { };
15044 
15045  template<>
15046  struct __is_fast_hash<hash<long double>> : public std::false_type
15047  { };
15048 
15049 
15050 }
15051 # 3053 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 2 3
15052 
15053 namespace std __attribute__ ((__visibility__ ("default")))
15054 {
15055 
15056 
15057 
15058 
15059 
15060 
15061  template<>
15062  struct hash<string>
15063  : public __hash_base<size_t, string>
15064  {
15065  size_t
15066  operator()(const string& __s) const noexcept
15067  { return std::_Hash_impl::hash(__s.data(), __s.length()); }
15068  };
15069 
15070  template<>
15071  struct __is_fast_hash<hash<string>> : std::false_type
15072  { };
15073 
15074 
15075 
15076  template<>
15077  struct hash<wstring>
15078  : public __hash_base<size_t, wstring>
15079  {
15080  size_t
15081  operator()(const wstring& __s) const noexcept
15082  { return std::_Hash_impl::hash(__s.data(),
15083  __s.length() * sizeof(wchar_t)); }
15084  };
15085 
15086  template<>
15087  struct __is_fast_hash<hash<wstring>> : std::false_type
15088  { };
15089 
15090 
15091 
15092 
15093 
15094  template<>
15095  struct hash<u16string>
15096  : public __hash_base<size_t, u16string>
15097  {
15098  size_t
15099  operator()(const u16string& __s) const noexcept
15100  { return std::_Hash_impl::hash(__s.data(),
15101  __s.length() * sizeof(char16_t)); }
15102  };
15103 
15104  template<>
15105  struct __is_fast_hash<hash<u16string>> : std::false_type
15106  { };
15107 
15108 
15109  template<>
15110  struct hash<u32string>
15111  : public __hash_base<size_t, u32string>
15112  {
15113  size_t
15114  operator()(const u32string& __s) const noexcept
15115  { return std::_Hash_impl::hash(__s.data(),
15116  __s.length() * sizeof(char32_t)); }
15117  };
15118 
15119  template<>
15120  struct __is_fast_hash<hash<u32string>> : std::false_type
15121  { };
15122 # 3158 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.h" 3
15123 }
15124 # 53 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
15125 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 1 3
15126 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 3
15127 
15128 
15129 
15130 namespace std __attribute__ ((__visibility__ ("default")))
15131 {
15132 
15133 
15134  template<typename _CharT, typename _Traits, typename _Alloc>
15135  const typename basic_string<_CharT, _Traits, _Alloc>::size_type
15136  basic_string<_CharT, _Traits, _Alloc>::
15137  _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
15138 
15139  template<typename _CharT, typename _Traits, typename _Alloc>
15140  const _CharT
15141  basic_string<_CharT, _Traits, _Alloc>::
15142  _Rep::_S_terminal = _CharT();
15143 
15144  template<typename _CharT, typename _Traits, typename _Alloc>
15145  const typename basic_string<_CharT, _Traits, _Alloc>::size_type
15146  basic_string<_CharT, _Traits, _Alloc>::npos;
15147 
15148 
15149 
15150  template<typename _CharT, typename _Traits, typename _Alloc>
15151  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15152  basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
15153  (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
15154  sizeof(size_type)];
15155 
15156 
15157 
15158 
15159 
15160  template<typename _CharT, typename _Traits, typename _Alloc>
15161  template<typename _InIterator>
15162  _CharT*
15163  basic_string<_CharT, _Traits, _Alloc>::
15164  _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
15165  input_iterator_tag)
15166  {
15167 
15168  if (__beg == __end && __a == _Alloc())
15169  return _S_empty_rep()._M_refdata();
15170 
15171 
15172  _CharT __buf[128];
15173  size_type __len = 0;
15174  while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
15175  {
15176  __buf[__len++] = *__beg;
15177  ++__beg;
15178  }
15179  _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
15180  _M_copy(__r->_M_refdata(), __buf, __len);
15181  try
15182  {
15183  while (__beg != __end)
15184  {
15185  if (__len == __r->_M_capacity)
15186  {
15187 
15188  _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
15189  _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
15190  __r->_M_destroy(__a);
15191  __r = __another;
15192  }
15193  __r->_M_refdata()[__len++] = *__beg;
15194  ++__beg;
15195  }
15196  }
15197  catch(...)
15198  {
15199  __r->_M_destroy(__a);
15200  throw;
15201  }
15202  __r->_M_set_length_and_sharable(__len);
15203  return __r->_M_refdata();
15204  }
15205 
15206  template<typename _CharT, typename _Traits, typename _Alloc>
15207  template <typename _InIterator>
15208  _CharT*
15209  basic_string<_CharT, _Traits, _Alloc>::
15210  _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
15211  forward_iterator_tag)
15212  {
15213 
15214  if (__beg == __end && __a == _Alloc())
15215  return _S_empty_rep()._M_refdata();
15216 
15217 
15218  if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end)
15219  __throw_logic_error(("basic_string::_S_construct null not valid"));
15220 
15221  const size_type __dnew = static_cast<size_type>(std::distance(__beg,
15222  __end));
15223 
15224  _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
15225  try
15226  { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
15227  catch(...)
15228  {
15229  __r->_M_destroy(__a);
15230  throw;
15231  }
15232  __r->_M_set_length_and_sharable(__dnew);
15233  return __r->_M_refdata();
15234  }
15235 
15236  template<typename _CharT, typename _Traits, typename _Alloc>
15237  _CharT*
15238  basic_string<_CharT, _Traits, _Alloc>::
15239  _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
15240  {
15241 
15242  if (__n == 0 && __a == _Alloc())
15243  return _S_empty_rep()._M_refdata();
15244 
15245 
15246  _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
15247  if (__n)
15248  _M_assign(__r->_M_refdata(), __n, __c);
15249 
15250  __r->_M_set_length_and_sharable(__n);
15251  return __r->_M_refdata();
15252  }
15253 
15254  template<typename _CharT, typename _Traits, typename _Alloc>
15255  basic_string<_CharT, _Traits, _Alloc>::
15256  basic_string(const basic_string& __str)
15257  : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
15258  __str.get_allocator()),
15259  __str.get_allocator())
15260  { }
15261 
15262  template<typename _CharT, typename _Traits, typename _Alloc>
15263  basic_string<_CharT, _Traits, _Alloc>::
15264  basic_string(const _Alloc& __a)
15265  : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
15266  { }
15267 
15268  template<typename _CharT, typename _Traits, typename _Alloc>
15269  basic_string<_CharT, _Traits, _Alloc>::
15270  basic_string(const basic_string& __str, size_type __pos, size_type __n)
15271  : _M_dataplus(_S_construct(__str._M_data()
15272  + __str._M_check(__pos,
15273  "basic_string::basic_string"),
15274  __str._M_data() + __str._M_limit(__pos, __n)
15275  + __pos, _Alloc()), _Alloc())
15276  { }
15277 
15278  template<typename _CharT, typename _Traits, typename _Alloc>
15279  basic_string<_CharT, _Traits, _Alloc>::
15280  basic_string(const basic_string& __str, size_type __pos,
15281  size_type __n, const _Alloc& __a)
15282  : _M_dataplus(_S_construct(__str._M_data()
15283  + __str._M_check(__pos,
15284  "basic_string::basic_string"),
15285  __str._M_data() + __str._M_limit(__pos, __n)
15286  + __pos, __a), __a)
15287  { }
15288 
15289 
15290  template<typename _CharT, typename _Traits, typename _Alloc>
15291  basic_string<_CharT, _Traits, _Alloc>::
15292  basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
15293  : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
15294  { }
15295 
15296 
15297  template<typename _CharT, typename _Traits, typename _Alloc>
15298  basic_string<_CharT, _Traits, _Alloc>::
15299  basic_string(const _CharT* __s, const _Alloc& __a)
15300  : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
15301  __s + npos, __a), __a)
15302  { }
15303 
15304  template<typename _CharT, typename _Traits, typename _Alloc>
15305  basic_string<_CharT, _Traits, _Alloc>::
15306  basic_string(size_type __n, _CharT __c, const _Alloc& __a)
15307  : _M_dataplus(_S_construct(__n, __c, __a), __a)
15308  { }
15309 
15310 
15311  template<typename _CharT, typename _Traits, typename _Alloc>
15312  template<typename _InputIterator>
15313  basic_string<_CharT, _Traits, _Alloc>::
15314  basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
15315  : _M_dataplus(_S_construct(__beg, __end, __a), __a)
15316  { }
15317 
15318 
15319  template<typename _CharT, typename _Traits, typename _Alloc>
15320  basic_string<_CharT, _Traits, _Alloc>::
15321  basic_string(initializer_list<_CharT> __l, const _Alloc& __a)
15322  : _M_dataplus(_S_construct(__l.begin(), __l.end(), __a), __a)
15323  { }
15324 
15325 
15326  template<typename _CharT, typename _Traits, typename _Alloc>
15327  basic_string<_CharT, _Traits, _Alloc>&
15328  basic_string<_CharT, _Traits, _Alloc>::
15329  assign(const basic_string& __str)
15330  {
15331  if (_M_rep() != __str._M_rep())
15332  {
15333 
15334  const allocator_type __a = this->get_allocator();
15335  _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
15336  _M_rep()->_M_dispose(__a);
15337  _M_data(__tmp);
15338  }
15339  return *this;
15340  }
15341 
15342  template<typename _CharT, typename _Traits, typename _Alloc>
15343  basic_string<_CharT, _Traits, _Alloc>&
15344  basic_string<_CharT, _Traits, _Alloc>::
15345  assign(const _CharT* __s, size_type __n)
15346  {
15347  ;
15348  _M_check_length(this->size(), __n, "basic_string::assign");
15349  if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15350  return _M_replace_safe(size_type(0), this->size(), __s, __n);
15351  else
15352  {
15353 
15354  const size_type __pos = __s - _M_data();
15355  if (__pos >= __n)
15356  _M_copy(_M_data(), __s, __n);
15357  else if (__pos)
15358  _M_move(_M_data(), __s, __n);
15359  _M_rep()->_M_set_length_and_sharable(__n);
15360  return *this;
15361  }
15362  }
15363 
15364  template<typename _CharT, typename _Traits, typename _Alloc>
15365  basic_string<_CharT, _Traits, _Alloc>&
15366  basic_string<_CharT, _Traits, _Alloc>::
15367  append(size_type __n, _CharT __c)
15368  {
15369  if (__n)
15370  {
15371  _M_check_length(size_type(0), __n, "basic_string::append");
15372  const size_type __len = __n + this->size();
15373  if (__len > this->capacity() || _M_rep()->_M_is_shared())
15374  this->reserve(__len);
15375  _M_assign(_M_data() + this->size(), __n, __c);
15376  _M_rep()->_M_set_length_and_sharable(__len);
15377  }
15378  return *this;
15379  }
15380 
15381  template<typename _CharT, typename _Traits, typename _Alloc>
15382  basic_string<_CharT, _Traits, _Alloc>&
15383  basic_string<_CharT, _Traits, _Alloc>::
15384  append(const _CharT* __s, size_type __n)
15385  {
15386  ;
15387  if (__n)
15388  {
15389  _M_check_length(size_type(0), __n, "basic_string::append");
15390  const size_type __len = __n + this->size();
15391  if (__len > this->capacity() || _M_rep()->_M_is_shared())
15392  {
15393  if (_M_disjunct(__s))
15394  this->reserve(__len);
15395  else
15396  {
15397  const size_type __off = __s - _M_data();
15398  this->reserve(__len);
15399  __s = _M_data() + __off;
15400  }
15401  }
15402  _M_copy(_M_data() + this->size(), __s, __n);
15403  _M_rep()->_M_set_length_and_sharable(__len);
15404  }
15405  return *this;
15406  }
15407 
15408  template<typename _CharT, typename _Traits, typename _Alloc>
15409  basic_string<_CharT, _Traits, _Alloc>&
15410  basic_string<_CharT, _Traits, _Alloc>::
15411  append(const basic_string& __str)
15412  {
15413  const size_type __size = __str.size();
15414  if (__size)
15415  {
15416  const size_type __len = __size + this->size();
15417  if (__len > this->capacity() || _M_rep()->_M_is_shared())
15418  this->reserve(__len);
15419  _M_copy(_M_data() + this->size(), __str._M_data(), __size);
15420  _M_rep()->_M_set_length_and_sharable(__len);
15421  }
15422  return *this;
15423  }
15424 
15425  template<typename _CharT, typename _Traits, typename _Alloc>
15426  basic_string<_CharT, _Traits, _Alloc>&
15427  basic_string<_CharT, _Traits, _Alloc>::
15428  append(const basic_string& __str, size_type __pos, size_type __n)
15429  {
15430  __str._M_check(__pos, "basic_string::append");
15431  __n = __str._M_limit(__pos, __n);
15432  if (__n)
15433  {
15434  const size_type __len = __n + this->size();
15435  if (__len > this->capacity() || _M_rep()->_M_is_shared())
15436  this->reserve(__len);
15437  _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
15438  _M_rep()->_M_set_length_and_sharable(__len);
15439  }
15440  return *this;
15441  }
15442 
15443  template<typename _CharT, typename _Traits, typename _Alloc>
15444  basic_string<_CharT, _Traits, _Alloc>&
15445  basic_string<_CharT, _Traits, _Alloc>::
15446  insert(size_type __pos, const _CharT* __s, size_type __n)
15447  {
15448  ;
15449  _M_check(__pos, "basic_string::insert");
15450  _M_check_length(size_type(0), __n, "basic_string::insert");
15451  if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15452  return _M_replace_safe(__pos, size_type(0), __s, __n);
15453  else
15454  {
15455 
15456  const size_type __off = __s - _M_data();
15457  _M_mutate(__pos, 0, __n);
15458  __s = _M_data() + __off;
15459  _CharT* __p = _M_data() + __pos;
15460  if (__s + __n <= __p)
15461  _M_copy(__p, __s, __n);
15462  else if (__s >= __p)
15463  _M_copy(__p, __s + __n, __n);
15464  else
15465  {
15466  const size_type __nleft = __p - __s;
15467  _M_copy(__p, __s, __nleft);
15468  _M_copy(__p + __nleft, __p + __n, __n - __nleft);
15469  }
15470  return *this;
15471  }
15472  }
15473 
15474  template<typename _CharT, typename _Traits, typename _Alloc>
15475  typename basic_string<_CharT, _Traits, _Alloc>::iterator
15476  basic_string<_CharT, _Traits, _Alloc>::
15477  erase(iterator __first, iterator __last)
15478  {
15479 
15480  ;
15481 
15482 
15483 
15484 
15485  const size_type __size = __last - __first;
15486  if (__size)
15487  {
15488  const size_type __pos = __first - _M_ibegin();
15489  _M_mutate(__pos, __size, size_type(0));
15490  _M_rep()->_M_set_leaked();
15491  return iterator(_M_data() + __pos);
15492  }
15493  else
15494  return __first;
15495  }
15496 
15497  template<typename _CharT, typename _Traits, typename _Alloc>
15498  basic_string<_CharT, _Traits, _Alloc>&
15499  basic_string<_CharT, _Traits, _Alloc>::
15500  replace(size_type __pos, size_type __n1, const _CharT* __s,
15501  size_type __n2)
15502  {
15503  ;
15504  _M_check(__pos, "basic_string::replace");
15505  __n1 = _M_limit(__pos, __n1);
15506  _M_check_length(__n1, __n2, "basic_string::replace");
15507  bool __left;
15508  if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
15509  return _M_replace_safe(__pos, __n1, __s, __n2);
15510  else if ((__left = __s + __n2 <= _M_data() + __pos)
15511  || _M_data() + __pos + __n1 <= __s)
15512  {
15513 
15514  size_type __off = __s - _M_data();
15515  __left ? __off : (__off += __n2 - __n1);
15516  _M_mutate(__pos, __n1, __n2);
15517  _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
15518  return *this;
15519  }
15520  else
15521  {
15522 
15523  const basic_string __tmp(__s, __n2);
15524  return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
15525  }
15526  }
15527 
15528  template<typename _CharT, typename _Traits, typename _Alloc>
15529  void
15530  basic_string<_CharT, _Traits, _Alloc>::_Rep::
15531  _M_destroy(const _Alloc& __a) throw ()
15532  {
15533  const size_type __size = sizeof(_Rep_base) +
15534  (this->_M_capacity + 1) * sizeof(_CharT);
15535  _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
15536  }
15537 
15538  template<typename _CharT, typename _Traits, typename _Alloc>
15539  void
15540  basic_string<_CharT, _Traits, _Alloc>::
15541  _M_leak_hard()
15542  {
15543 
15544  if (_M_rep() == &_S_empty_rep())
15545  return;
15546 
15547  if (_M_rep()->_M_is_shared())
15548  _M_mutate(0, 0, 0);
15549  _M_rep()->_M_set_leaked();
15550  }
15551 
15552  template<typename _CharT, typename _Traits, typename _Alloc>
15553  void
15554  basic_string<_CharT, _Traits, _Alloc>::
15555  _M_mutate(size_type __pos, size_type __len1, size_type __len2)
15556  {
15557  const size_type __old_size = this->size();
15558  const size_type __new_size = __old_size + __len2 - __len1;
15559  const size_type __how_much = __old_size - __pos - __len1;
15560 
15561  if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
15562  {
15563 
15564  const allocator_type __a = get_allocator();
15565  _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
15566 
15567  if (__pos)
15568  _M_copy(__r->_M_refdata(), _M_data(), __pos);
15569  if (__how_much)
15570  _M_copy(__r->_M_refdata() + __pos + __len2,
15571  _M_data() + __pos + __len1, __how_much);
15572 
15573  _M_rep()->_M_dispose(__a);
15574  _M_data(__r->_M_refdata());
15575  }
15576  else if (__how_much && __len1 != __len2)
15577  {
15578 
15579  _M_move(_M_data() + __pos + __len2,
15580  _M_data() + __pos + __len1, __how_much);
15581  }
15582  _M_rep()->_M_set_length_and_sharable(__new_size);
15583  }
15584 
15585  template<typename _CharT, typename _Traits, typename _Alloc>
15586  void
15587  basic_string<_CharT, _Traits, _Alloc>::
15588  reserve(size_type __res)
15589  {
15590  if (__res != this->capacity() || _M_rep()->_M_is_shared())
15591  {
15592 
15593  if (__res < this->size())
15594  __res = this->size();
15595  const allocator_type __a = get_allocator();
15596  _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
15597  _M_rep()->_M_dispose(__a);
15598  _M_data(__tmp);
15599  }
15600  }
15601 
15602  template<typename _CharT, typename _Traits, typename _Alloc>
15603  void
15604  basic_string<_CharT, _Traits, _Alloc>::
15605  swap(basic_string& __s)
15606  {
15607  if (_M_rep()->_M_is_leaked())
15608  _M_rep()->_M_set_sharable();
15609  if (__s._M_rep()->_M_is_leaked())
15610  __s._M_rep()->_M_set_sharable();
15611  if (this->get_allocator() == __s.get_allocator())
15612  {
15613  _CharT* __tmp = _M_data();
15614  _M_data(__s._M_data());
15615  __s._M_data(__tmp);
15616  }
15617 
15618  else
15619  {
15620  const basic_string __tmp1(_M_ibegin(), _M_iend(),
15621  __s.get_allocator());
15622  const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
15623  this->get_allocator());
15624  *this = __tmp2;
15625  __s = __tmp1;
15626  }
15627  }
15628 
15629  template<typename _CharT, typename _Traits, typename _Alloc>
15630  typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
15631  basic_string<_CharT, _Traits, _Alloc>::_Rep::
15632  _S_create(size_type __capacity, size_type __old_capacity,
15633  const _Alloc& __alloc)
15634  {
15635 
15636 
15637  if (__capacity > _S_max_size)
15638  __throw_length_error(("basic_string::_S_create"));
15639 # 577 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_string.tcc" 3
15640  const size_type __pagesize = 4096;
15641  const size_type __malloc_header_size = 4 * sizeof(void*);
15642 
15643 
15644 
15645 
15646 
15647 
15648 
15649  if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
15650  __capacity = 2 * __old_capacity;
15651 
15652 
15653 
15654 
15655  size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
15656 
15657  const size_type __adj_size = __size + __malloc_header_size;
15658  if (__adj_size > __pagesize && __capacity > __old_capacity)
15659  {
15660  const size_type __extra = __pagesize - __adj_size % __pagesize;
15661  __capacity += __extra / sizeof(_CharT);
15662 
15663  if (__capacity > _S_max_size)
15664  __capacity = _S_max_size;
15665  __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
15666  }
15667 
15668 
15669 
15670  void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
15671  _Rep *__p = new (__place) _Rep;
15672  __p->_M_capacity = __capacity;
15673 
15674 
15675 
15676 
15677 
15678 
15679 
15680  __p->_M_set_sharable();
15681  return __p;
15682  }
15683 
15684  template<typename _CharT, typename _Traits, typename _Alloc>
15685  _CharT*
15686  basic_string<_CharT, _Traits, _Alloc>::_Rep::
15687  _M_clone(const _Alloc& __alloc, size_type __res)
15688  {
15689 
15690  const size_type __requested_cap = this->_M_length + __res;
15691  _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
15692  __alloc);
15693  if (this->_M_length)
15694  _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
15695 
15696  __r->_M_set_length_and_sharable(this->_M_length);
15697  return __r->_M_refdata();
15698  }
15699 
15700  template<typename _CharT, typename _Traits, typename _Alloc>
15701  void
15702  basic_string<_CharT, _Traits, _Alloc>::
15703  resize(size_type __n, _CharT __c)
15704  {
15705  const size_type __size = this->size();
15706  _M_check_length(__size, __n, "basic_string::resize");
15707  if (__size < __n)
15708  this->append(__n - __size, __c);
15709  else if (__n < __size)
15710  this->erase(__n);
15711 
15712  }
15713 
15714  template<typename _CharT, typename _Traits, typename _Alloc>
15715  template<typename _InputIterator>
15716  basic_string<_CharT, _Traits, _Alloc>&
15717  basic_string<_CharT, _Traits, _Alloc>::
15718  _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
15719  _InputIterator __k2, __false_type)
15720  {
15721  const basic_string __s(__k1, __k2);
15722  const size_type __n1 = __i2 - __i1;
15723  _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
15724  return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
15725  __s.size());
15726  }
15727 
15728  template<typename _CharT, typename _Traits, typename _Alloc>
15729  basic_string<_CharT, _Traits, _Alloc>&
15730  basic_string<_CharT, _Traits, _Alloc>::
15731  _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
15732  _CharT __c)
15733  {
15734  _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
15735  _M_mutate(__pos1, __n1, __n2);
15736  if (__n2)
15737  _M_assign(_M_data() + __pos1, __n2, __c);
15738  return *this;
15739  }
15740 
15741  template<typename _CharT, typename _Traits, typename _Alloc>
15742  basic_string<_CharT, _Traits, _Alloc>&
15743  basic_string<_CharT, _Traits, _Alloc>::
15744  _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
15745  size_type __n2)
15746  {
15747  _M_mutate(__pos1, __n1, __n2);
15748  if (__n2)
15749  _M_copy(_M_data() + __pos1, __s, __n2);
15750  return *this;
15751  }
15752 
15753  template<typename _CharT, typename _Traits, typename _Alloc>
15754  basic_string<_CharT, _Traits, _Alloc>
15755  operator+(const _CharT* __lhs,
15756  const basic_string<_CharT, _Traits, _Alloc>& __rhs)
15757  {
15758  ;
15759  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
15760  typedef typename __string_type::size_type __size_type;
15761  const __size_type __len = _Traits::length(__lhs);
15762  __string_type __str;
15763  __str.reserve(__len + __rhs.size());
15764  __str.append(__lhs, __len);
15765  __str.append(__rhs);
15766  return __str;
15767  }
15768 
15769  template<typename _CharT, typename _Traits, typename _Alloc>
15770  basic_string<_CharT, _Traits, _Alloc>
15771  operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
15772  {
15773  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
15774  typedef typename __string_type::size_type __size_type;
15775  __string_type __str;
15776  const __size_type __len = __rhs.size();
15777  __str.reserve(__len + 1);
15778  __str.append(__size_type(1), __lhs);
15779  __str.append(__rhs);
15780  return __str;
15781  }
15782 
15783  template<typename _CharT, typename _Traits, typename _Alloc>
15784  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15785  basic_string<_CharT, _Traits, _Alloc>::
15786  copy(_CharT* __s, size_type __n, size_type __pos) const
15787  {
15788  _M_check(__pos, "basic_string::copy");
15789  __n = _M_limit(__pos, __n);
15790  ;
15791  if (__n)
15792  _M_copy(__s, _M_data() + __pos, __n);
15793 
15794  return __n;
15795  }
15796 
15797  template<typename _CharT, typename _Traits, typename _Alloc>
15798  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15799  basic_string<_CharT, _Traits, _Alloc>::
15800  find(const _CharT* __s, size_type __pos, size_type __n) const
15801  {
15802  ;
15803  const size_type __size = this->size();
15804  const _CharT* __data = _M_data();
15805 
15806  if (__n == 0)
15807  return __pos <= __size ? __pos : npos;
15808 
15809  if (__n <= __size)
15810  {
15811  for (; __pos <= __size - __n; ++__pos)
15812  if (traits_type::eq(__data[__pos], __s[0])
15813  && traits_type::compare(__data + __pos + 1,
15814  __s + 1, __n - 1) == 0)
15815  return __pos;
15816  }
15817  return npos;
15818  }
15819 
15820  template<typename _CharT, typename _Traits, typename _Alloc>
15821  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15822  basic_string<_CharT, _Traits, _Alloc>::
15823  find(_CharT __c, size_type __pos) const noexcept
15824  {
15825  size_type __ret = npos;
15826  const size_type __size = this->size();
15827  if (__pos < __size)
15828  {
15829  const _CharT* __data = _M_data();
15830  const size_type __n = __size - __pos;
15831  const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
15832  if (__p)
15833  __ret = __p - __data;
15834  }
15835  return __ret;
15836  }
15837 
15838  template<typename _CharT, typename _Traits, typename _Alloc>
15839  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15840  basic_string<_CharT, _Traits, _Alloc>::
15841  rfind(const _CharT* __s, size_type __pos, size_type __n) const
15842  {
15843  ;
15844  const size_type __size = this->size();
15845  if (__n <= __size)
15846  {
15847  __pos = std::min(size_type(__size - __n), __pos);
15848  const _CharT* __data = _M_data();
15849  do
15850  {
15851  if (traits_type::compare(__data + __pos, __s, __n) == 0)
15852  return __pos;
15853  }
15854  while (__pos-- > 0);
15855  }
15856  return npos;
15857  }
15858 
15859  template<typename _CharT, typename _Traits, typename _Alloc>
15860  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15861  basic_string<_CharT, _Traits, _Alloc>::
15862  rfind(_CharT __c, size_type __pos) const noexcept
15863  {
15864  size_type __size = this->size();
15865  if (__size)
15866  {
15867  if (--__size > __pos)
15868  __size = __pos;
15869  for (++__size; __size-- > 0; )
15870  if (traits_type::eq(_M_data()[__size], __c))
15871  return __size;
15872  }
15873  return npos;
15874  }
15875 
15876  template<typename _CharT, typename _Traits, typename _Alloc>
15877  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15878  basic_string<_CharT, _Traits, _Alloc>::
15879  find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
15880  {
15881  ;
15882  for (; __n && __pos < this->size(); ++__pos)
15883  {
15884  const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
15885  if (__p)
15886  return __pos;
15887  }
15888  return npos;
15889  }
15890 
15891  template<typename _CharT, typename _Traits, typename _Alloc>
15892  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15893  basic_string<_CharT, _Traits, _Alloc>::
15894  find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
15895  {
15896  ;
15897  size_type __size = this->size();
15898  if (__size && __n)
15899  {
15900  if (--__size > __pos)
15901  __size = __pos;
15902  do
15903  {
15904  if (traits_type::find(__s, __n, _M_data()[__size]))
15905  return __size;
15906  }
15907  while (__size-- != 0);
15908  }
15909  return npos;
15910  }
15911 
15912  template<typename _CharT, typename _Traits, typename _Alloc>
15913  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15914  basic_string<_CharT, _Traits, _Alloc>::
15915  find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
15916  {
15917  ;
15918  for (; __pos < this->size(); ++__pos)
15919  if (!traits_type::find(__s, __n, _M_data()[__pos]))
15920  return __pos;
15921  return npos;
15922  }
15923 
15924  template<typename _CharT, typename _Traits, typename _Alloc>
15925  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15926  basic_string<_CharT, _Traits, _Alloc>::
15927  find_first_not_of(_CharT __c, size_type __pos) const noexcept
15928  {
15929  for (; __pos < this->size(); ++__pos)
15930  if (!traits_type::eq(_M_data()[__pos], __c))
15931  return __pos;
15932  return npos;
15933  }
15934 
15935  template<typename _CharT, typename _Traits, typename _Alloc>
15936  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15937  basic_string<_CharT, _Traits, _Alloc>::
15938  find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
15939  {
15940  ;
15941  size_type __size = this->size();
15942  if (__size)
15943  {
15944  if (--__size > __pos)
15945  __size = __pos;
15946  do
15947  {
15948  if (!traits_type::find(__s, __n, _M_data()[__size]))
15949  return __size;
15950  }
15951  while (__size--);
15952  }
15953  return npos;
15954  }
15955 
15956  template<typename _CharT, typename _Traits, typename _Alloc>
15957  typename basic_string<_CharT, _Traits, _Alloc>::size_type
15958  basic_string<_CharT, _Traits, _Alloc>::
15959  find_last_not_of(_CharT __c, size_type __pos) const noexcept
15960  {
15961  size_type __size = this->size();
15962  if (__size)
15963  {
15964  if (--__size > __pos)
15965  __size = __pos;
15966  do
15967  {
15968  if (!traits_type::eq(_M_data()[__size], __c))
15969  return __size;
15970  }
15971  while (__size--);
15972  }
15973  return npos;
15974  }
15975 
15976  template<typename _CharT, typename _Traits, typename _Alloc>
15977  int
15978  basic_string<_CharT, _Traits, _Alloc>::
15979  compare(size_type __pos, size_type __n, const basic_string& __str) const
15980  {
15981  _M_check(__pos, "basic_string::compare");
15982  __n = _M_limit(__pos, __n);
15983  const size_type __osize = __str.size();
15984  const size_type __len = std::min(__n, __osize);
15985  int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
15986  if (!__r)
15987  __r = _S_compare(__n, __osize);
15988  return __r;
15989  }
15990 
15991  template<typename _CharT, typename _Traits, typename _Alloc>
15992  int
15993  basic_string<_CharT, _Traits, _Alloc>::
15994  compare(size_type __pos1, size_type __n1, const basic_string& __str,
15995  size_type __pos2, size_type __n2) const
15996  {
15997  _M_check(__pos1, "basic_string::compare");
15998  __str._M_check(__pos2, "basic_string::compare");
15999  __n1 = _M_limit(__pos1, __n1);
16000  __n2 = __str._M_limit(__pos2, __n2);
16001  const size_type __len = std::min(__n1, __n2);
16002  int __r = traits_type::compare(_M_data() + __pos1,
16003  __str.data() + __pos2, __len);
16004  if (!__r)
16005  __r = _S_compare(__n1, __n2);
16006  return __r;
16007  }
16008 
16009  template<typename _CharT, typename _Traits, typename _Alloc>
16010  int
16011  basic_string<_CharT, _Traits, _Alloc>::
16012  compare(const _CharT* __s) const
16013  {
16014  ;
16015  const size_type __size = this->size();
16016  const size_type __osize = traits_type::length(__s);
16017  const size_type __len = std::min(__size, __osize);
16018  int __r = traits_type::compare(_M_data(), __s, __len);
16019  if (!__r)
16020  __r = _S_compare(__size, __osize);
16021  return __r;
16022  }
16023 
16024  template<typename _CharT, typename _Traits, typename _Alloc>
16025  int
16026  basic_string <_CharT, _Traits, _Alloc>::
16027  compare(size_type __pos, size_type __n1, const _CharT* __s) const
16028  {
16029  ;
16030  _M_check(__pos, "basic_string::compare");
16031  __n1 = _M_limit(__pos, __n1);
16032  const size_type __osize = traits_type::length(__s);
16033  const size_type __len = std::min(__n1, __osize);
16034  int __r = traits_type::compare(_M_data() + __pos, __s, __len);
16035  if (!__r)
16036  __r = _S_compare(__n1, __osize);
16037  return __r;
16038  }
16039 
16040  template<typename _CharT, typename _Traits, typename _Alloc>
16041  int
16042  basic_string <_CharT, _Traits, _Alloc>::
16043  compare(size_type __pos, size_type __n1, const _CharT* __s,
16044  size_type __n2) const
16045  {
16046  ;
16047  _M_check(__pos, "basic_string::compare");
16048  __n1 = _M_limit(__pos, __n1);
16049  const size_type __len = std::min(__n1, __n2);
16050  int __r = traits_type::compare(_M_data() + __pos, __s, __len);
16051  if (!__r)
16052  __r = _S_compare(__n1, __n2);
16053  return __r;
16054  }
16055 
16056 
16057  template<typename _CharT, typename _Traits, typename _Alloc>
16058  basic_istream<_CharT, _Traits>&
16059  operator>>(basic_istream<_CharT, _Traits>& __in,
16060  basic_string<_CharT, _Traits, _Alloc>& __str)
16061  {
16062  typedef basic_istream<_CharT, _Traits> __istream_type;
16063  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
16064  typedef typename __istream_type::ios_base __ios_base;
16065  typedef typename __istream_type::int_type __int_type;
16066  typedef typename __string_type::size_type __size_type;
16067  typedef ctype<_CharT> __ctype_type;
16068  typedef typename __ctype_type::ctype_base __ctype_base;
16069 
16070  __size_type __extracted = 0;
16071  typename __ios_base::iostate __err = __ios_base::goodbit;
16072  typename __istream_type::sentry __cerb(__in, false);
16073  if (__cerb)
16074  {
16075  try
16076  {
16077 
16078  __str.erase();
16079  _CharT __buf[128];
16080  __size_type __len = 0;
16081  const streamsize __w = __in.width();
16082  const __size_type __n = __w > 0 ? static_cast<__size_type>(__w)
16083  : __str.max_size();
16084  const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
16085  const __int_type __eof = _Traits::eof();
16086  __int_type __c = __in.rdbuf()->sgetc();
16087 
16088  while (__extracted < __n
16089  && !_Traits::eq_int_type(__c, __eof)
16090  && !__ct.is(__ctype_base::space,
16091  _Traits::to_char_type(__c)))
16092  {
16093  if (__len == sizeof(__buf) / sizeof(_CharT))
16094  {
16095  __str.append(__buf, sizeof(__buf) / sizeof(_CharT));
16096  __len = 0;
16097  }
16098  __buf[__len++] = _Traits::to_char_type(__c);
16099  ++__extracted;
16100  __c = __in.rdbuf()->snextc();
16101  }
16102  __str.append(__buf, __len);
16103 
16104  if (_Traits::eq_int_type(__c, __eof))
16105  __err |= __ios_base::eofbit;
16106  __in.width(0);
16107  }
16109  {
16110  __in._M_setstate(__ios_base::badbit);
16111  throw;
16112  }
16113  catch(...)
16114  {
16115 
16116 
16117 
16118  __in._M_setstate(__ios_base::badbit);
16119  }
16120  }
16121 
16122  if (!__extracted)
16123  __err |= __ios_base::failbit;
16124  if (__err)
16125  __in.setstate(__err);
16126  return __in;
16127  }
16128 
16129  template<typename _CharT, typename _Traits, typename _Alloc>
16130  basic_istream<_CharT, _Traits>&
16131  getline(basic_istream<_CharT, _Traits>& __in,
16132  basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
16133  {
16134  typedef basic_istream<_CharT, _Traits> __istream_type;
16135  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
16136  typedef typename __istream_type::ios_base __ios_base;
16137  typedef typename __istream_type::int_type __int_type;
16138  typedef typename __string_type::size_type __size_type;
16139 
16140  __size_type __extracted = 0;
16141  const __size_type __n = __str.max_size();
16142  typename __ios_base::iostate __err = __ios_base::goodbit;
16143  typename __istream_type::sentry __cerb(__in, true);
16144  if (__cerb)
16145  {
16146  try
16147  {
16148  __str.erase();
16149  const __int_type __idelim = _Traits::to_int_type(__delim);
16150  const __int_type __eof = _Traits::eof();
16151  __int_type __c = __in.rdbuf()->sgetc();
16152 
16153  while (__extracted < __n
16154  && !_Traits::eq_int_type(__c, __eof)
16155  && !_Traits::eq_int_type(__c, __idelim))
16156  {
16157  __str += _Traits::to_char_type(__c);
16158  ++__extracted;
16159  __c = __in.rdbuf()->snextc();
16160  }
16161 
16162  if (_Traits::eq_int_type(__c, __eof))
16163  __err |= __ios_base::eofbit;
16164  else if (_Traits::eq_int_type(__c, __idelim))
16165  {
16166  ++__extracted;
16167  __in.rdbuf()->sbumpc();
16168  }
16169  else
16170  __err |= __ios_base::failbit;
16171  }
16173  {
16174  __in._M_setstate(__ios_base::badbit);
16175  throw;
16176  }
16177  catch(...)
16178  {
16179 
16180 
16181 
16182  __in._M_setstate(__ios_base::badbit);
16183  }
16184  }
16185  if (!__extracted)
16186  __err |= __ios_base::failbit;
16187  if (__err)
16188  __in.setstate(__err);
16189  return __in;
16190  }
16191 
16192 
16193 
16194 
16195  extern template class basic_string<char>;
16196  extern template
16197  basic_istream<char>&
16198  operator>>(basic_istream<char>&, string&);
16199  extern template
16200  basic_ostream<char>&
16201  operator<<(basic_ostream<char>&, const string&);
16202  extern template
16203  basic_istream<char>&
16204  getline(basic_istream<char>&, string&, char);
16205  extern template
16206  basic_istream<char>&
16207  getline(basic_istream<char>&, string&);
16208 
16209 
16210  extern template class basic_string<wchar_t>;
16211  extern template
16212  basic_istream<wchar_t>&
16213  operator>>(basic_istream<wchar_t>&, wstring&);
16214  extern template
16215  basic_ostream<wchar_t>&
16216  operator<<(basic_ostream<wchar_t>&, const wstring&);
16217  extern template
16218  basic_istream<wchar_t>&
16219  getline(basic_istream<wchar_t>&, wstring&, wchar_t);
16220  extern template
16221  basic_istream<wchar_t>&
16222  getline(basic_istream<wchar_t>&, wstring&);
16223 
16224 
16225 
16226 
16227 }
16228 # 54 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/string" 2 3
16229 # 26 "./integral.hpp" 2
16230 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 1 3
16231 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
16232 
16233 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 1 3
16234 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
16235 
16236 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 1 3
16237 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 3
16238 
16239 
16240 
16241 
16242 
16243 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 1 3
16244 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
16245 
16246 
16247 
16248 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 1 3
16249 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16250 
16251 
16252 
16253 
16254 
16255 namespace std __attribute__ ((__visibility__ ("default")))
16256 {
16257 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16258  class locale
16259  {
16260  public:
16261 
16262 
16263  typedef int category;
16264 
16265 
16266  class facet;
16267  class id;
16268  class _Impl;
16269 
16270  friend class facet;
16271  friend class _Impl;
16272 
16273  template<typename _Facet>
16274  friend bool
16275  has_facet(const locale&) throw();
16276 
16277  template<typename _Facet>
16278  friend const _Facet&
16279  use_facet(const locale&);
16280 
16281  template<typename _Cache>
16282  friend struct __use_cache;
16283 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16284  static const category none = 0;
16285  static const category ctype = 1L << 0;
16286  static const category numeric = 1L << 1;
16287  static const category collate = 1L << 2;
16288  static const category time = 1L << 3;
16289  static const category monetary = 1L << 4;
16290  static const category messages = 1L << 5;
16291  static const category all = (ctype | numeric | collate |
16292  time | monetary | messages);
16293 # 117 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16294  locale() throw();
16295 # 126 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16296  locale(const locale& __other) throw();
16297 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16298  explicit
16299  locale(const char* __s);
16300 # 151 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16301  locale(const locale& __base, const char* __s, category __cat);
16302 # 164 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16303  locale(const locale& __base, const locale& __add, category __cat);
16304 # 177 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16305  template<typename _Facet>
16306  locale(const locale& __other, _Facet* __f);
16307 
16308 
16309  ~locale() throw();
16310 # 191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16311  const locale&
16312  operator=(const locale& __other) throw();
16313 # 206 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16314  template<typename _Facet>
16315  locale
16316  combine(const locale& __other) const;
16317 
16318 
16319 
16320 
16321 
16322 
16323  string
16324  name() const;
16325 # 225 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16326  bool
16327  operator==(const locale& __other) const throw();
16328 
16329 
16330 
16331 
16332 
16333 
16334 
16335  bool
16336  operator!=(const locale& __other) const throw()
16337  { return !(this->operator==(__other)); }
16338 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16339  template<typename _Char, typename _Traits, typename _Alloc>
16340  bool
16341  operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
16342  const basic_string<_Char, _Traits, _Alloc>& __s2) const;
16343 # 269 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16344  static locale
16345  global(const locale& __loc);
16346 
16347 
16348 
16349 
16350  static const locale&
16351  classic();
16352 
16353  private:
16354 
16355  _Impl* _M_impl;
16356 
16357 
16358  static _Impl* _S_classic;
16359 
16360 
16361  static _Impl* _S_global;
16362 
16363 
16364 
16365 
16366 
16367  static const char* const* const _S_categories;
16368 # 304 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16369  enum { _S_categories_size = 6 + 6 };
16370 
16371 
16372  static __gthread_once_t _S_once;
16373 
16374 
16375  explicit
16376  locale(_Impl*) throw();
16377 
16378  static void
16379  _S_initialize();
16380 
16381  static void
16382  _S_initialize_once() throw();
16383 
16384  static category
16385  _S_normalize_category(category);
16386 
16387  void
16388  _M_coalesce(const locale& __base, const locale& __add, category __cat);
16389  };
16390 # 338 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16391  class locale::facet
16392  {
16393  private:
16394  friend class locale;
16395  friend class locale::_Impl;
16396 
16397  mutable _Atomic_word _M_refcount;
16398 
16399 
16400  static __c_locale _S_c_locale;
16401 
16402 
16403  static const char _S_c_name[2];
16404 
16405 
16406  static __gthread_once_t _S_once;
16407 
16408 
16409  static void
16410  _S_initialize_once();
16411 
16412  protected:
16413 # 369 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16414  explicit
16415  facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0)
16416  { }
16417 
16418 
16419  virtual
16420  ~facet();
16421 
16422  static void
16423  _S_create_c_locale(__c_locale& __cloc, const char* __s,
16424  __c_locale __old = 0);
16425 
16426  static __c_locale
16427  _S_clone_c_locale(__c_locale& __cloc) throw();
16428 
16429  static void
16430  _S_destroy_c_locale(__c_locale& __cloc);
16431 
16432  static __c_locale
16433  _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s);
16434 
16435 
16436 
16437  static __c_locale
16438  _S_get_c_locale();
16439 
16440  __attribute__ ((__const__)) static const char*
16441  _S_get_c_name() throw();
16442 
16443  private:
16444  void
16445  _M_add_reference() const throw()
16446  { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
16447 
16448  void
16449  _M_remove_reference() const throw()
16450  {
16451 
16452  ;
16453  if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
16454  {
16455  ;
16456  try
16457  { delete this; }
16458  catch(...)
16459  { }
16460  }
16461  }
16462 
16463  facet(const facet&);
16464 
16465  facet&
16466  operator=(const facet&);
16467  };
16468 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16469  class locale::id
16470  {
16471  private:
16472  friend class locale;
16473  friend class locale::_Impl;
16474 
16475  template<typename _Facet>
16476  friend const _Facet&
16477  use_facet(const locale&);
16478 
16479  template<typename _Facet>
16480  friend bool
16481  has_facet(const locale&) throw();
16482 
16483 
16484 
16485 
16486  mutable size_t _M_index;
16487 
16488 
16489  static _Atomic_word _S_refcount;
16490 
16491  void
16492  operator=(const id&);
16493 
16494  id(const id&);
16495 
16496  public:
16497 
16498 
16499 
16500  id() { }
16501 
16502  size_t
16503  _M_id() const throw();
16504  };
16505 
16506 
16507 
16508  class locale::_Impl
16509  {
16510  public:
16511 
16512  friend class locale;
16513  friend class locale::facet;
16514 
16515  template<typename _Facet>
16516  friend bool
16517  has_facet(const locale&) throw();
16518 
16519  template<typename _Facet>
16520  friend const _Facet&
16521  use_facet(const locale&);
16522 
16523  template<typename _Cache>
16524  friend struct __use_cache;
16525 
16526  private:
16527 
16528  _Atomic_word _M_refcount;
16529  const facet** _M_facets;
16530  size_t _M_facets_size;
16531  const facet** _M_caches;
16532  char** _M_names;
16533  static const locale::id* const _S_id_ctype[];
16534  static const locale::id* const _S_id_numeric[];
16535  static const locale::id* const _S_id_collate[];
16536  static const locale::id* const _S_id_time[];
16537  static const locale::id* const _S_id_monetary[];
16538  static const locale::id* const _S_id_messages[];
16539  static const locale::id* const* const _S_facet_categories[];
16540 
16541  void
16542  _M_add_reference() throw()
16543  { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
16544 
16545  void
16546  _M_remove_reference() throw()
16547  {
16548 
16549  ;
16550  if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
16551  {
16552  ;
16553  try
16554  { delete this; }
16555  catch(...)
16556  { }
16557  }
16558  }
16559 
16560  _Impl(const _Impl&, size_t);
16561  _Impl(const char*, size_t);
16562  _Impl(size_t) throw();
16563 
16564  ~_Impl() throw();
16565 
16566  _Impl(const _Impl&);
16567 
16568  void
16569  operator=(const _Impl&);
16570 
16571  bool
16572  _M_check_same_name()
16573  {
16574  bool __ret = true;
16575  if (_M_names[1])
16576 
16577  for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
16578  __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0;
16579  return __ret;
16580  }
16581 
16582  void
16583  _M_replace_categories(const _Impl*, category);
16584 
16585  void
16586  _M_replace_category(const _Impl*, const locale::id* const*);
16587 
16588  void
16589  _M_replace_facet(const _Impl*, const locale::id*);
16590 
16591  void
16592  _M_install_facet(const locale::id*, const facet*);
16593 
16594  template<typename _Facet>
16595  void
16596  _M_init_facet(_Facet* __facet)
16597  { _M_install_facet(&_Facet::id, __facet); }
16598 
16599  void
16600  _M_install_cache(const facet*, size_t);
16601  };
16602 # 583 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16603  template<typename _CharT>
16604  class collate : public locale::facet
16605  {
16606  public:
16607 
16608 
16609 
16610  typedef _CharT char_type;
16611  typedef basic_string<_CharT> string_type;
16612 
16613 
16614  protected:
16615 
16616 
16617  __c_locale _M_c_locale_collate;
16618 
16619  public:
16620 
16621  static locale::id id;
16622 # 610 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16623  explicit
16624  collate(size_t __refs = 0)
16625  : facet(__refs), _M_c_locale_collate(_S_get_c_locale())
16626  { }
16627 # 624 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16628  explicit
16629  collate(__c_locale __cloc, size_t __refs = 0)
16630  : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc))
16631  { }
16632 # 641 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16633  int
16634  compare(const _CharT* __lo1, const _CharT* __hi1,
16635  const _CharT* __lo2, const _CharT* __hi2) const
16636  { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }
16637 # 660 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16638  string_type
16639  transform(const _CharT* __lo, const _CharT* __hi) const
16640  { return this->do_transform(__lo, __hi); }
16641 # 674 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16642  long
16643  hash(const _CharT* __lo, const _CharT* __hi) const
16644  { return this->do_hash(__lo, __hi); }
16645 
16646 
16647  int
16648  _M_compare(const _CharT*, const _CharT*) const throw();
16649 
16650  size_t
16651  _M_transform(_CharT*, const _CharT*, size_t) const throw();
16652 
16653  protected:
16654 
16655  virtual
16656  ~collate()
16657  { _S_destroy_c_locale(_M_c_locale_collate); }
16658 # 703 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16659  virtual int
16660  do_compare(const _CharT* __lo1, const _CharT* __hi1,
16661  const _CharT* __lo2, const _CharT* __hi2) const;
16662 # 717 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16663  virtual string_type
16664  do_transform(const _CharT* __lo, const _CharT* __hi) const;
16665 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 3
16666  virtual long
16667  do_hash(const _CharT* __lo, const _CharT* __hi) const;
16668  };
16669 
16670  template<typename _CharT>
16671  locale::id collate<_CharT>::id;
16672 
16673 
16674  template<>
16675  int
16676  collate<char>::_M_compare(const char*, const char*) const throw();
16677 
16678  template<>
16679  size_t
16680  collate<char>::_M_transform(char*, const char*, size_t) const throw();
16681 
16682 
16683  template<>
16684  int
16685  collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const throw();
16686 
16687  template<>
16688  size_t
16689  collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const throw();
16690 
16691 
16692 
16693  template<typename _CharT>
16694  class collate_byname : public collate<_CharT>
16695  {
16696  public:
16697 
16698 
16699  typedef _CharT char_type;
16700  typedef basic_string<_CharT> string_type;
16701 
16702 
16703  explicit
16704  collate_byname(const char* __s, size_t __refs = 0)
16705  : collate<_CharT>(__refs)
16706  {
16707  if (__builtin_strcmp(__s, "C") != 0
16708  && __builtin_strcmp(__s, "POSIX") != 0)
16709  {
16710  this->_S_destroy_c_locale(this->_M_c_locale_collate);
16711  this->_S_create_c_locale(this->_M_c_locale_collate, __s);
16712  }
16713  }
16714 
16715  protected:
16716  virtual
16717  ~collate_byname() { }
16718  };
16719 
16720 
16721 }
16722 
16723 
16724 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 1 3
16725 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16726 
16727 namespace std __attribute__ ((__visibility__ ("default")))
16728 {
16729 
16730 
16731  template<typename _Facet>
16732  locale::
16733  locale(const locale& __other, _Facet* __f)
16734  {
16735  _M_impl = new _Impl(*__other._M_impl, 1);
16736 
16737  try
16738  { _M_impl->_M_install_facet(&_Facet::id, __f); }
16739  catch(...)
16740  {
16741  _M_impl->_M_remove_reference();
16742  throw;
16743  }
16744  delete [] _M_impl->_M_names[0];
16745  _M_impl->_M_names[0] = 0;
16746  }
16747 
16748  template<typename _Facet>
16749  locale
16750  locale::
16751  combine(const locale& __other) const
16752  {
16753  _Impl* __tmp = new _Impl(*_M_impl, 1);
16754  try
16755  {
16756  __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
16757  }
16758  catch(...)
16759  {
16760  __tmp->_M_remove_reference();
16761  throw;
16762  }
16763  return locale(__tmp);
16764  }
16765 
16766  template<typename _CharT, typename _Traits, typename _Alloc>
16767  bool
16768  locale::
16769  operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,
16770  const basic_string<_CharT, _Traits, _Alloc>& __s2) const
16771  {
16772  typedef std::collate<_CharT> __collate_type;
16773  const __collate_type& __collate = use_facet<__collate_type>(*this);
16774  return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),
16775  __s2.data(), __s2.data() + __s2.length()) < 0);
16776  }
16777 # 102 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16778  template<typename _Facet>
16779  bool
16780  has_facet(const locale& __loc) throw()
16781  {
16782  const size_t __i = _Facet::id._M_id();
16783  const locale::facet** __facets = __loc._M_impl->_M_facets;
16784  return (__i < __loc._M_impl->_M_facets_size
16785 
16786  && dynamic_cast<const _Facet*>(__facets[__i]));
16787 
16788 
16789 
16790  }
16791 # 130 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.tcc" 3
16792  template<typename _Facet>
16793  const _Facet&
16794  use_facet(const locale& __loc)
16795  {
16796  const size_t __i = _Facet::id._M_id();
16797  const locale::facet** __facets = __loc._M_impl->_M_facets;
16798  if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i])
16799  __throw_bad_cast();
16800 
16801  return dynamic_cast<const _Facet&>(*__facets[__i]);
16802 
16803 
16804 
16805  }
16806 
16807 
16808 
16809  template<typename _CharT>
16810  int
16811  collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw ()
16812  { return 0; }
16813 
16814 
16815  template<typename _CharT>
16816  size_t
16817  collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw ()
16818  { return 0; }
16819 
16820  template<typename _CharT>
16821  int
16822  collate<_CharT>::
16823  do_compare(const _CharT* __lo1, const _CharT* __hi1,
16824  const _CharT* __lo2, const _CharT* __hi2) const
16825  {
16826 
16827 
16828  const string_type __one(__lo1, __hi1);
16829  const string_type __two(__lo2, __hi2);
16830 
16831  const _CharT* __p = __one.c_str();
16832  const _CharT* __pend = __one.data() + __one.length();
16833  const _CharT* __q = __two.c_str();
16834  const _CharT* __qend = __two.data() + __two.length();
16835 
16836 
16837 
16838 
16839  for (;;)
16840  {
16841  const int __res = _M_compare(__p, __q);
16842  if (__res)
16843  return __res;
16844 
16845  __p += char_traits<_CharT>::length(__p);
16846  __q += char_traits<_CharT>::length(__q);
16847  if (__p == __pend && __q == __qend)
16848  return 0;
16849  else if (__p == __pend)
16850  return -1;
16851  else if (__q == __qend)
16852  return 1;
16853 
16854  __p++;
16855  __q++;
16856  }
16857  }
16858 
16859  template<typename _CharT>
16860  typename collate<_CharT>::string_type
16861  collate<_CharT>::
16862  do_transform(const _CharT* __lo, const _CharT* __hi) const
16863  {
16864  string_type __ret;
16865 
16866 
16867  const string_type __str(__lo, __hi);
16868 
16869  const _CharT* __p = __str.c_str();
16870  const _CharT* __pend = __str.data() + __str.length();
16871 
16872  size_t __len = (__hi - __lo) * 2;
16873 
16874  _CharT* __c = new _CharT[__len];
16875 
16876  try
16877  {
16878 
16879 
16880 
16881  for (;;)
16882  {
16883 
16884  size_t __res = _M_transform(__c, __p, __len);
16885 
16886 
16887  if (__res >= __len)
16888  {
16889  __len = __res + 1;
16890  delete [] __c, __c = 0;
16891  __c = new _CharT[__len];
16892  __res = _M_transform(__c, __p, __len);
16893  }
16894 
16895  __ret.append(__c, __res);
16896  __p += char_traits<_CharT>::length(__p);
16897  if (__p == __pend)
16898  break;
16899 
16900  __p++;
16901  __ret.push_back(_CharT());
16902  }
16903  }
16904  catch(...)
16905  {
16906  delete [] __c;
16907  throw;
16908  }
16909 
16910  delete [] __c;
16911 
16912  return __ret;
16913  }
16914 
16915  template<typename _CharT>
16916  long
16917  collate<_CharT>::
16918  do_hash(const _CharT* __lo, const _CharT* __hi) const
16919  {
16920  unsigned long __val = 0;
16921  for (; __lo < __hi; ++__lo)
16922  __val =
16923  *__lo + ((__val << 7)
16924  | (__val >> (__gnu_cxx::__numeric_traits<unsigned long>::
16925  __digits - 7)));
16926  return static_cast<long>(__val);
16927  }
16928 
16929 
16930 
16931 
16932  extern template class collate<char>;
16933  extern template class collate_byname<char>;
16934 
16935  extern template
16936  const collate<char>&
16937  use_facet<collate<char> >(const locale&);
16938 
16939  extern template
16940  bool
16941  has_facet<collate<char> >(const locale&);
16942 
16943 
16944  extern template class collate<wchar_t>;
16945  extern template class collate_byname<wchar_t>;
16946 
16947  extern template
16948  const collate<wchar_t>&
16949  use_facet<collate<wchar_t> >(const locale&);
16950 
16951  extern template
16952  bool
16953  has_facet<collate<wchar_t> >(const locale&);
16954 
16955 
16956 
16957 
16958 }
16959 # 788 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_classes.h" 2 3
16960 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 2 3
16961 
16962 namespace std __attribute__ ((__visibility__ ("default")))
16963 {
16964 
16965 
16966 
16967 
16968 
16969 
16970  enum _Ios_Fmtflags
16971  {
16972  _S_boolalpha = 1L << 0,
16973  _S_dec = 1L << 1,
16974  _S_fixed = 1L << 2,
16975  _S_hex = 1L << 3,
16976  _S_internal = 1L << 4,
16977  _S_left = 1L << 5,
16978  _S_oct = 1L << 6,
16979  _S_right = 1L << 7,
16980  _S_scientific = 1L << 8,
16981  _S_showbase = 1L << 9,
16982  _S_showpoint = 1L << 10,
16983  _S_showpos = 1L << 11,
16984  _S_skipws = 1L << 12,
16985  _S_unitbuf = 1L << 13,
16986  _S_uppercase = 1L << 14,
16987  _S_adjustfield = _S_left | _S_right | _S_internal,
16988  _S_basefield = _S_dec | _S_oct | _S_hex,
16989  _S_floatfield = _S_scientific | _S_fixed,
16990  _S_ios_fmtflags_end = 1L << 16
16991  };
16992 
16993  inline constexpr _Ios_Fmtflags
16994  operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
16995  { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
16996 
16997  inline constexpr _Ios_Fmtflags
16998  operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
16999  { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
17000 
17001  inline constexpr _Ios_Fmtflags
17002  operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
17003  { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17004 
17005  inline constexpr _Ios_Fmtflags
17006  operator~(_Ios_Fmtflags __a)
17007  { return _Ios_Fmtflags(~static_cast<int>(__a)); }
17008 
17009  inline const _Ios_Fmtflags&
17010  operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17011  { return __a = __a | __b; }
17012 
17013  inline const _Ios_Fmtflags&
17014  operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17015  { return __a = __a & __b; }
17016 
17017  inline const _Ios_Fmtflags&
17018  operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
17019  { return __a = __a ^ __b; }
17020 
17021 
17022  enum _Ios_Openmode
17023  {
17024  _S_app = 1L << 0,
17025  _S_ate = 1L << 1,
17026  _S_bin = 1L << 2,
17027  _S_in = 1L << 3,
17028  _S_out = 1L << 4,
17029  _S_trunc = 1L << 5,
17030  _S_ios_openmode_end = 1L << 16
17031  };
17032 
17033  inline constexpr _Ios_Openmode
17034  operator&(_Ios_Openmode __a, _Ios_Openmode __b)
17035  { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
17036 
17037  inline constexpr _Ios_Openmode
17038  operator|(_Ios_Openmode __a, _Ios_Openmode __b)
17039  { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
17040 
17041  inline constexpr _Ios_Openmode
17042  operator^(_Ios_Openmode __a, _Ios_Openmode __b)
17043  { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17044 
17045  inline constexpr _Ios_Openmode
17046  operator~(_Ios_Openmode __a)
17047  { return _Ios_Openmode(~static_cast<int>(__a)); }
17048 
17049  inline const _Ios_Openmode&
17050  operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
17051  { return __a = __a | __b; }
17052 
17053  inline const _Ios_Openmode&
17054  operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
17055  { return __a = __a & __b; }
17056 
17057  inline const _Ios_Openmode&
17058  operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
17059  { return __a = __a ^ __b; }
17060 
17061 
17062  enum _Ios_Iostate
17063  {
17064  _S_goodbit = 0,
17065  _S_badbit = 1L << 0,
17066  _S_eofbit = 1L << 1,
17067  _S_failbit = 1L << 2,
17068  _S_ios_iostate_end = 1L << 16
17069  };
17070 
17071  inline constexpr _Ios_Iostate
17072  operator&(_Ios_Iostate __a, _Ios_Iostate __b)
17073  { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
17074 
17075  inline constexpr _Ios_Iostate
17076  operator|(_Ios_Iostate __a, _Ios_Iostate __b)
17077  { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
17078 
17079  inline constexpr _Ios_Iostate
17080  operator^(_Ios_Iostate __a, _Ios_Iostate __b)
17081  { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
17082 
17083  inline constexpr _Ios_Iostate
17084  operator~(_Ios_Iostate __a)
17085  { return _Ios_Iostate(~static_cast<int>(__a)); }
17086 
17087  inline const _Ios_Iostate&
17088  operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
17089  { return __a = __a | __b; }
17090 
17091  inline const _Ios_Iostate&
17092  operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
17093  { return __a = __a & __b; }
17094 
17095  inline const _Ios_Iostate&
17096  operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
17097  { return __a = __a ^ __b; }
17098 
17099 
17100  enum _Ios_Seekdir
17101  {
17102  _S_beg = 0,
17103  _S_cur = 1,
17104  _S_end = 2,
17105  _S_ios_seekdir_end = 1L << 16
17106  };
17107 # 199 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17108  class ios_base
17109  {
17110  public:
17111 
17112 
17113 
17114 
17115 
17116 
17117 
17118  class failure : public exception
17119  {
17120  public:
17121 
17122 
17123  explicit
17124  failure(const string& __str) throw();
17125 
17126 
17127 
17128  virtual
17129  ~failure() throw();
17130 
17131  virtual const char*
17132  what() const throw();
17133 
17134  private:
17135  string _M_msg;
17136  };
17137 # 255 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17138  typedef _Ios_Fmtflags fmtflags;
17139 
17140 
17141  static const fmtflags boolalpha = _S_boolalpha;
17142 
17143 
17144  static const fmtflags dec = _S_dec;
17145 
17146 
17147  static const fmtflags fixed = _S_fixed;
17148 
17149 
17150  static const fmtflags hex = _S_hex;
17151 
17152 
17153 
17154 
17155  static const fmtflags internal = _S_internal;
17156 
17157 
17158 
17159  static const fmtflags left = _S_left;
17160 
17161 
17162  static const fmtflags oct = _S_oct;
17163 
17164 
17165 
17166  static const fmtflags right = _S_right;
17167 
17168 
17169  static const fmtflags scientific = _S_scientific;
17170 
17171 
17172 
17173  static const fmtflags showbase = _S_showbase;
17174 
17175 
17176 
17177  static const fmtflags showpoint = _S_showpoint;
17178 
17179 
17180  static const fmtflags showpos = _S_showpos;
17181 
17182 
17183  static const fmtflags skipws = _S_skipws;
17184 
17185 
17186  static const fmtflags unitbuf = _S_unitbuf;
17187 
17188 
17189 
17190  static const fmtflags uppercase = _S_uppercase;
17191 
17192 
17193  static const fmtflags adjustfield = _S_adjustfield;
17194 
17195 
17196  static const fmtflags basefield = _S_basefield;
17197 
17198 
17199  static const fmtflags floatfield = _S_floatfield;
17200 # 330 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17201  typedef _Ios_Iostate iostate;
17202 
17203 
17204 
17205  static const iostate badbit = _S_badbit;
17206 
17207 
17208  static const iostate eofbit = _S_eofbit;
17209 
17210 
17211 
17212 
17213  static const iostate failbit = _S_failbit;
17214 
17215 
17216  static const iostate goodbit = _S_goodbit;
17217 # 361 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17218  typedef _Ios_Openmode openmode;
17219 
17220 
17221  static const openmode app = _S_app;
17222 
17223 
17224  static const openmode ate = _S_ate;
17225 
17226 
17227 
17228 
17229  static const openmode binary = _S_bin;
17230 
17231 
17232  static const openmode in = _S_in;
17233 
17234 
17235  static const openmode out = _S_out;
17236 
17237 
17238  static const openmode trunc = _S_trunc;
17239 # 393 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17240  typedef _Ios_Seekdir seekdir;
17241 
17242 
17243  static const seekdir beg = _S_beg;
17244 
17245 
17246  static const seekdir cur = _S_cur;
17247 
17248 
17249  static const seekdir end = _S_end;
17250 
17251 
17252  typedef int io_state;
17253  typedef int open_mode;
17254  typedef int seek_dir;
17255 
17256  typedef std::streampos streampos;
17257  typedef std::streamoff streamoff;
17258 # 419 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17259  enum event
17260  {
17261  erase_event,
17262  imbue_event,
17263  copyfmt_event
17264  };
17265 # 436 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17266  typedef void (*event_callback) (event __e, ios_base& __b, int __i);
17267 # 448 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17268  void
17269  register_callback(event_callback __fn, int __index);
17270 
17271  protected:
17272  streamsize _M_precision;
17273  streamsize _M_width;
17274  fmtflags _M_flags;
17275  iostate _M_exception;
17276  iostate _M_streambuf_state;
17277 
17278 
17279 
17280  struct _Callback_list
17281  {
17282 
17283  _Callback_list* _M_next;
17284  ios_base::event_callback _M_fn;
17285  int _M_index;
17286  _Atomic_word _M_refcount;
17287 
17288  _Callback_list(ios_base::event_callback __fn, int __index,
17289  _Callback_list* __cb)
17290  : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
17291 
17292  void
17293  _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
17294 
17295 
17296  int
17297  _M_remove_reference()
17298  {
17299 
17300  ;
17301  int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1);
17302  if (__res == 0)
17303  {
17304  ;
17305  }
17306  return __res;
17307  }
17308  };
17309 
17310  _Callback_list* _M_callbacks;
17311 
17312  void
17313  _M_call_callbacks(event __ev) throw();
17314 
17315  void
17316  _M_dispose_callbacks(void) throw();
17317 
17318 
17319  struct _Words
17320  {
17321  void* _M_pword;
17322  long _M_iword;
17323  _Words() : _M_pword(0), _M_iword(0) { }
17324  };
17325 
17326 
17327  _Words _M_word_zero;
17328 
17329 
17330 
17331  enum { _S_local_word_size = 8 };
17332  _Words _M_local_word[_S_local_word_size];
17333 
17334 
17335  int _M_word_size;
17336  _Words* _M_word;
17337 
17338  _Words&
17339  _M_grow_words(int __index, bool __iword);
17340 
17341 
17342  locale _M_ios_locale;
17343 
17344  void
17345  _M_init() throw();
17346 
17347  public:
17348 
17349 
17350 
17351 
17352 
17353  class Init
17354  {
17355  friend class ios_base;
17356  public:
17357  Init();
17358  ~Init();
17359 
17360  private:
17361  static _Atomic_word _S_refcount;
17362  static bool _S_synced_with_stdio;
17363  };
17364 
17365 
17366 
17367 
17368 
17369 
17370  fmtflags
17371  flags() const
17372  { return _M_flags; }
17373 # 561 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17374  fmtflags
17375  flags(fmtflags __fmtfl)
17376  {
17377  fmtflags __old = _M_flags;
17378  _M_flags = __fmtfl;
17379  return __old;
17380  }
17381 # 577 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17382  fmtflags
17383  setf(fmtflags __fmtfl)
17384  {
17385  fmtflags __old = _M_flags;
17386  _M_flags |= __fmtfl;
17387  return __old;
17388  }
17389 # 594 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17390  fmtflags
17391  setf(fmtflags __fmtfl, fmtflags __mask)
17392  {
17393  fmtflags __old = _M_flags;
17394  _M_flags &= ~__mask;
17395  _M_flags |= (__fmtfl & __mask);
17396  return __old;
17397  }
17398 
17399 
17400 
17401 
17402 
17403 
17404 
17405  void
17406  unsetf(fmtflags __mask)
17407  { _M_flags &= ~__mask; }
17408 # 620 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17409  streamsize
17410  precision() const
17411  { return _M_precision; }
17412 
17413 
17414 
17415 
17416 
17417 
17418  streamsize
17419  precision(streamsize __prec)
17420  {
17421  streamsize __old = _M_precision;
17422  _M_precision = __prec;
17423  return __old;
17424  }
17425 
17426 
17427 
17428 
17429 
17430 
17431 
17432  streamsize
17433  width() const
17434  { return _M_width; }
17435 
17436 
17437 
17438 
17439 
17440 
17441  streamsize
17442  width(streamsize __wide)
17443  {
17444  streamsize __old = _M_width;
17445  _M_width = __wide;
17446  return __old;
17447  }
17448 # 671 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17449  static bool
17450  sync_with_stdio(bool __sync = true);
17451 # 683 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17452  locale
17453  imbue(const locale& __loc) throw();
17454 # 694 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17455  locale
17456  getloc() const
17457  { return _M_ios_locale; }
17458 # 705 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17459  const locale&
17460  _M_getloc() const
17461  { return _M_ios_locale; }
17462 # 724 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17463  static int
17464  xalloc() throw();
17465 # 740 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17466  long&
17467  iword(int __ix)
17468  {
17469  _Words& __word = (__ix < _M_word_size)
17470  ? _M_word[__ix] : _M_grow_words(__ix, true);
17471  return __word._M_iword;
17472  }
17473 # 761 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17474  void*&
17475  pword(int __ix)
17476  {
17477  _Words& __word = (__ix < _M_word_size)
17478  ? _M_word[__ix] : _M_grow_words(__ix, false);
17479  return __word._M_pword;
17480  }
17481 # 778 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ios_base.h" 3
17482  virtual ~ios_base();
17483 
17484  protected:
17485  ios_base() throw ();
17486 
17487 
17488 
17489  private:
17490  ios_base(const ios_base&);
17491 
17492  ios_base&
17493  operator=(const ios_base&);
17494  };
17495 
17496 
17497 
17498  inline ios_base&
17499  boolalpha(ios_base& __base)
17500  {
17501  __base.setf(ios_base::boolalpha);
17502  return __base;
17503  }
17504 
17505 
17506  inline ios_base&
17507  noboolalpha(ios_base& __base)
17508  {
17509  __base.unsetf(ios_base::boolalpha);
17510  return __base;
17511  }
17512 
17513 
17514  inline ios_base&
17515  showbase(ios_base& __base)
17516  {
17517  __base.setf(ios_base::showbase);
17518  return __base;
17519  }
17520 
17521 
17522  inline ios_base&
17523  noshowbase(ios_base& __base)
17524  {
17525  __base.unsetf(ios_base::showbase);
17526  return __base;
17527  }
17528 
17529 
17530  inline ios_base&
17531  showpoint(ios_base& __base)
17532  {
17533  __base.setf(ios_base::showpoint);
17534  return __base;
17535  }
17536 
17537 
17538  inline ios_base&
17539  noshowpoint(ios_base& __base)
17540  {
17541  __base.unsetf(ios_base::showpoint);
17542  return __base;
17543  }
17544 
17545 
17546  inline ios_base&
17547  showpos(ios_base& __base)
17548  {
17549  __base.setf(ios_base::showpos);
17550  return __base;
17551  }
17552 
17553 
17554  inline ios_base&
17555  noshowpos(ios_base& __base)
17556  {
17557  __base.unsetf(ios_base::showpos);
17558  return __base;
17559  }
17560 
17561 
17562  inline ios_base&
17563  skipws(ios_base& __base)
17564  {
17565  __base.setf(ios_base::skipws);
17566  return __base;
17567  }
17568 
17569 
17570  inline ios_base&
17571  noskipws(ios_base& __base)
17572  {
17573  __base.unsetf(ios_base::skipws);
17574  return __base;
17575  }
17576 
17577 
17578  inline ios_base&
17579  uppercase(ios_base& __base)
17580  {
17581  __base.setf(ios_base::uppercase);
17582  return __base;
17583  }
17584 
17585 
17586  inline ios_base&
17587  nouppercase(ios_base& __base)
17588  {
17589  __base.unsetf(ios_base::uppercase);
17590  return __base;
17591  }
17592 
17593 
17594  inline ios_base&
17595  unitbuf(ios_base& __base)
17596  {
17597  __base.setf(ios_base::unitbuf);
17598  return __base;
17599  }
17600 
17601 
17602  inline ios_base&
17603  nounitbuf(ios_base& __base)
17604  {
17605  __base.unsetf(ios_base::unitbuf);
17606  return __base;
17607  }
17608 
17609 
17610 
17611  inline ios_base&
17612  internal(ios_base& __base)
17613  {
17614  __base.setf(ios_base::internal, ios_base::adjustfield);
17615  return __base;
17616  }
17617 
17618 
17619  inline ios_base&
17620  left(ios_base& __base)
17621  {
17622  __base.setf(ios_base::left, ios_base::adjustfield);
17623  return __base;
17624  }
17625 
17626 
17627  inline ios_base&
17628  right(ios_base& __base)
17629  {
17630  __base.setf(ios_base::right, ios_base::adjustfield);
17631  return __base;
17632  }
17633 
17634 
17635 
17636  inline ios_base&
17637  dec(ios_base& __base)
17638  {
17639  __base.setf(ios_base::dec, ios_base::basefield);
17640  return __base;
17641  }
17642 
17643 
17644  inline ios_base&
17645  hex(ios_base& __base)
17646  {
17647  __base.setf(ios_base::hex, ios_base::basefield);
17648  return __base;
17649  }
17650 
17651 
17652  inline ios_base&
17653  oct(ios_base& __base)
17654  {
17655  __base.setf(ios_base::oct, ios_base::basefield);
17656  return __base;
17657  }
17658 
17659 
17660 
17661  inline ios_base&
17662  fixed(ios_base& __base)
17663  {
17664  __base.setf(ios_base::fixed, ios_base::floatfield);
17665  return __base;
17666  }
17667 
17668 
17669  inline ios_base&
17670  scientific(ios_base& __base)
17671  {
17672  __base.setf(ios_base::scientific, ios_base::floatfield);
17673  return __base;
17674  }
17675 
17676 
17677 }
17678 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
17679 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 1 3
17680 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17681 
17682 
17683 
17684 
17685 
17686 
17687 
17688 
17689 namespace std __attribute__ ((__visibility__ ("default")))
17690 {
17691 
17692 
17693  template<typename _CharT, typename _Traits>
17694  streamsize
17695  __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*,
17696  basic_streambuf<_CharT, _Traits>*, bool&);
17697 # 119 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17698  template<typename _CharT, typename _Traits>
17699  class basic_streambuf
17700  {
17701  public:
17702 
17703 
17704 
17705 
17706 
17707 
17708  typedef _CharT char_type;
17709  typedef _Traits traits_type;
17710  typedef typename traits_type::int_type int_type;
17711  typedef typename traits_type::pos_type pos_type;
17712  typedef typename traits_type::off_type off_type;
17713 
17714 
17715 
17716 
17717  typedef basic_streambuf<char_type, traits_type> __streambuf_type;
17718 
17719 
17720  friend class basic_ios<char_type, traits_type>;
17721  friend class basic_istream<char_type, traits_type>;
17722  friend class basic_ostream<char_type, traits_type>;
17723  friend class istreambuf_iterator<char_type, traits_type>;
17724  friend class ostreambuf_iterator<char_type, traits_type>;
17725 
17726  friend streamsize
17727  __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&);
17728 
17729  template<bool _IsMove, typename _CharT2>
17730  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
17731  _CharT2*>::__type
17732  __copy_move_a2(istreambuf_iterator<_CharT2>,
17733  istreambuf_iterator<_CharT2>, _CharT2*);
17734 
17735  template<typename _CharT2>
17736  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
17737  istreambuf_iterator<_CharT2> >::__type
17738  find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
17739  const _CharT2&);
17740 
17741  template<typename _CharT2, typename _Traits2>
17742  friend basic_istream<_CharT2, _Traits2>&
17743  operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
17744 
17745  template<typename _CharT2, typename _Traits2, typename _Alloc>
17746  friend basic_istream<_CharT2, _Traits2>&
17747  operator>>(basic_istream<_CharT2, _Traits2>&,
17748  basic_string<_CharT2, _Traits2, _Alloc>&);
17749 
17750  template<typename _CharT2, typename _Traits2, typename _Alloc>
17751  friend basic_istream<_CharT2, _Traits2>&
17752  getline(basic_istream<_CharT2, _Traits2>&,
17753  basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2);
17754 
17755  protected:
17756 
17757 
17758 
17759 
17760 
17761 
17762 
17763  char_type* _M_in_beg;
17764  char_type* _M_in_cur;
17765  char_type* _M_in_end;
17766  char_type* _M_out_beg;
17767  char_type* _M_out_cur;
17768  char_type* _M_out_end;
17769 
17770 
17771  locale _M_buf_locale;
17772 
17773  public:
17774 
17775  virtual
17776  ~basic_streambuf()
17777  { }
17778 # 208 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17779  locale
17780  pubimbue(const locale& __loc)
17781  {
17782  locale __tmp(this->getloc());
17783  this->imbue(__loc);
17784  _M_buf_locale = __loc;
17785  return __tmp;
17786  }
17787 # 225 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17788  locale
17789  getloc() const
17790  { return _M_buf_locale; }
17791 # 238 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17792  basic_streambuf*
17793  pubsetbuf(char_type* __s, streamsize __n)
17794  { return this->setbuf(__s, __n); }
17795 # 250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17796  pos_type
17797  pubseekoff(off_type __off, ios_base::seekdir __way,
17798  ios_base::openmode __mode = ios_base::in | ios_base::out)
17799  { return this->seekoff(__off, __way, __mode); }
17800 # 262 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17801  pos_type
17802  pubseekpos(pos_type __sp,
17803  ios_base::openmode __mode = ios_base::in | ios_base::out)
17804  { return this->seekpos(__sp, __mode); }
17805 
17806 
17807 
17808 
17809  int
17810  pubsync() { return this->sync(); }
17811 # 283 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17812  streamsize
17813  in_avail()
17814  {
17815  const streamsize __ret = this->egptr() - this->gptr();
17816  return __ret ? __ret : this->showmanyc();
17817  }
17818 # 297 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17819  int_type
17820  snextc()
17821  {
17822  int_type __ret = traits_type::eof();
17823  if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
17824  __ret), true))
17825  __ret = this->sgetc();
17826  return __ret;
17827  }
17828 # 315 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17829  int_type
17830  sbumpc()
17831  {
17832  int_type __ret;
17833  if (__builtin_expect(this->gptr() < this->egptr(), true))
17834  {
17835  __ret = traits_type::to_int_type(*this->gptr());
17836  this->gbump(1);
17837  }
17838  else
17839  __ret = this->uflow();
17840  return __ret;
17841  }
17842 # 337 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17843  int_type
17844  sgetc()
17845  {
17846  int_type __ret;
17847  if (__builtin_expect(this->gptr() < this->egptr(), true))
17848  __ret = traits_type::to_int_type(*this->gptr());
17849  else
17850  __ret = this->underflow();
17851  return __ret;
17852  }
17853 # 356 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17854  streamsize
17855  sgetn(char_type* __s, streamsize __n)
17856  { return this->xsgetn(__s, __n); }
17857 # 371 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17858  int_type
17859  sputbackc(char_type __c)
17860  {
17861  int_type __ret;
17862  const bool __testpos = this->eback() < this->gptr();
17863  if (__builtin_expect(!__testpos ||
17864  !traits_type::eq(__c, this->gptr()[-1]), false))
17865  __ret = this->pbackfail(traits_type::to_int_type(__c));
17866  else
17867  {
17868  this->gbump(-1);
17869  __ret = traits_type::to_int_type(*this->gptr());
17870  }
17871  return __ret;
17872  }
17873 # 396 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17874  int_type
17875  sungetc()
17876  {
17877  int_type __ret;
17878  if (__builtin_expect(this->eback() < this->gptr(), true))
17879  {
17880  this->gbump(-1);
17881  __ret = traits_type::to_int_type(*this->gptr());
17882  }
17883  else
17884  __ret = this->pbackfail();
17885  return __ret;
17886  }
17887 # 423 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17888  int_type
17889  sputc(char_type __c)
17890  {
17891  int_type __ret;
17892  if (__builtin_expect(this->pptr() < this->epptr(), true))
17893  {
17894  *this->pptr() = __c;
17895  this->pbump(1);
17896  __ret = traits_type::to_int_type(__c);
17897  }
17898  else
17899  __ret = this->overflow(traits_type::to_int_type(__c));
17900  return __ret;
17901  }
17902 # 449 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17903  streamsize
17904  sputn(const char_type* __s, streamsize __n)
17905  { return this->xsputn(__s, __n); }
17906 
17907  protected:
17908 # 463 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17909  basic_streambuf()
17910  : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
17911  _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
17912  _M_buf_locale(locale())
17913  { }
17914 # 481 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17915  char_type*
17916  eback() const { return _M_in_beg; }
17917 
17918  char_type*
17919  gptr() const { return _M_in_cur; }
17920 
17921  char_type*
17922  egptr() const { return _M_in_end; }
17923 # 497 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17924  void
17925  gbump(int __n) { _M_in_cur += __n; }
17926 # 508 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17927  void
17928  setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
17929  {
17930  _M_in_beg = __gbeg;
17931  _M_in_cur = __gnext;
17932  _M_in_end = __gend;
17933  }
17934 # 528 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17935  char_type*
17936  pbase() const { return _M_out_beg; }
17937 
17938  char_type*
17939  pptr() const { return _M_out_cur; }
17940 
17941  char_type*
17942  epptr() const { return _M_out_end; }
17943 # 544 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17944  void
17945  pbump(int __n) { _M_out_cur += __n; }
17946 # 554 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17947  void
17948  setp(char_type* __pbeg, char_type* __pend)
17949  {
17950  _M_out_beg = _M_out_cur = __pbeg;
17951  _M_out_end = __pend;
17952  }
17953 # 575 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17954  virtual void
17955  imbue(const locale& __loc)
17956  { }
17957 # 590 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17958  virtual basic_streambuf<char_type,_Traits>*
17959  setbuf(char_type*, streamsize)
17960  { return this; }
17961 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17962  virtual pos_type
17963  seekoff(off_type, ios_base::seekdir,
17964  ios_base::openmode = ios_base::in | ios_base::out)
17965  { return pos_type(off_type(-1)); }
17966 # 613 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17967  virtual pos_type
17968  seekpos(pos_type,
17969  ios_base::openmode = ios_base::in | ios_base::out)
17970  { return pos_type(off_type(-1)); }
17971 # 626 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17972  virtual int
17973  sync() { return 0; }
17974 # 648 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17975  virtual streamsize
17976  showmanyc() { return 0; }
17977 # 664 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17978  virtual streamsize
17979  xsgetn(char_type* __s, streamsize __n);
17980 # 686 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17981  virtual int_type
17982  underflow()
17983  { return traits_type::eof(); }
17984 # 699 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17985  virtual int_type
17986  uflow()
17987  {
17988  int_type __ret = traits_type::eof();
17989  const bool __testeof = traits_type::eq_int_type(this->underflow(),
17990  __ret);
17991  if (!__testeof)
17992  {
17993  __ret = traits_type::to_int_type(*this->gptr());
17994  this->gbump(1);
17995  }
17996  return __ret;
17997  }
17998 # 723 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
17999  virtual int_type
18000  pbackfail(int_type __c = traits_type::eof())
18001  { return traits_type::eof(); }
18002 # 741 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18003  virtual streamsize
18004  xsputn(const char_type* __s, streamsize __n);
18005 # 767 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18006  virtual int_type
18007  overflow(int_type __c = traits_type::eof())
18008  { return traits_type::eof(); }
18009 
18010 
18011 
18012  public:
18013 # 782 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 3
18014  void
18015  stossc()
18016  {
18017  if (this->gptr() < this->egptr())
18018  this->gbump(1);
18019  else
18020  this->uflow();
18021  }
18022 
18023 
18024 
18025  void
18026  __safe_gbump(streamsize __n) { _M_in_cur += __n; }
18027 
18028  void
18029  __safe_pbump(streamsize __n) { _M_out_cur += __n; }
18030 
18031  private:
18032 
18033 
18034  basic_streambuf(const basic_streambuf& __sb)
18035  : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur),
18036  _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg),
18037  _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur),
18038  _M_buf_locale(__sb._M_buf_locale)
18039  { }
18040 
18041  basic_streambuf&
18042  operator=(const basic_streambuf&) { return *this; };
18043  };
18044 
18045 
18046  template<>
18047  streamsize
18048  __copy_streambufs_eof(basic_streambuf<char>* __sbin,
18049  basic_streambuf<char>* __sbout, bool& __ineof);
18050 
18051  template<>
18052  streamsize
18053  __copy_streambufs_eof(basic_streambuf<wchar_t>* __sbin,
18054  basic_streambuf<wchar_t>* __sbout, bool& __ineof);
18055 
18056 
18057 
18058 }
18059 
18060 
18061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf.tcc" 1 3
18062 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf.tcc" 3
18063 
18064 namespace std __attribute__ ((__visibility__ ("default")))
18065 {
18066 
18067 
18068  template<typename _CharT, typename _Traits>
18069  streamsize
18070  basic_streambuf<_CharT, _Traits>::
18071  xsgetn(char_type* __s, streamsize __n)
18072  {
18073  streamsize __ret = 0;
18074  while (__ret < __n)
18075  {
18076  const streamsize __buf_len = this->egptr() - this->gptr();
18077  if (__buf_len)
18078  {
18079  const streamsize __remaining = __n - __ret;
18080  const streamsize __len = std::min(__buf_len, __remaining);
18081  traits_type::copy(__s, this->gptr(), __len);
18082  __ret += __len;
18083  __s += __len;
18084  this->__safe_gbump(__len);
18085  }
18086 
18087  if (__ret < __n)
18088  {
18089  const int_type __c = this->uflow();
18090  if (!traits_type::eq_int_type(__c, traits_type::eof()))
18091  {
18092  traits_type::assign(*__s++, traits_type::to_char_type(__c));
18093  ++__ret;
18094  }
18095  else
18096  break;
18097  }
18098  }
18099  return __ret;
18100  }
18101 
18102  template<typename _CharT, typename _Traits>
18103  streamsize
18104  basic_streambuf<_CharT, _Traits>::
18105  xsputn(const char_type* __s, streamsize __n)
18106  {
18107  streamsize __ret = 0;
18108  while (__ret < __n)
18109  {
18110  const streamsize __buf_len = this->epptr() - this->pptr();
18111  if (__buf_len)
18112  {
18113  const streamsize __remaining = __n - __ret;
18114  const streamsize __len = std::min(__buf_len, __remaining);
18115  traits_type::copy(this->pptr(), __s, __len);
18116  __ret += __len;
18117  __s += __len;
18118  this->__safe_pbump(__len);
18119  }
18120 
18121  if (__ret < __n)
18122  {
18123  int_type __c = this->overflow(traits_type::to_int_type(*__s));
18124  if (!traits_type::eq_int_type(__c, traits_type::eof()))
18125  {
18126  ++__ret;
18127  ++__s;
18128  }
18129  else
18130  break;
18131  }
18132  }
18133  return __ret;
18134  }
18135 
18136 
18137 
18138 
18139  template<typename _CharT, typename _Traits>
18140  streamsize
18141  __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin,
18142  basic_streambuf<_CharT, _Traits>* __sbout,
18143  bool& __ineof)
18144  {
18145  streamsize __ret = 0;
18146  __ineof = true;
18147  typename _Traits::int_type __c = __sbin->sgetc();
18148  while (!_Traits::eq_int_type(__c, _Traits::eof()))
18149  {
18150  __c = __sbout->sputc(_Traits::to_char_type(__c));
18151  if (_Traits::eq_int_type(__c, _Traits::eof()))
18152  {
18153  __ineof = false;
18154  break;
18155  }
18156  ++__ret;
18157  __c = __sbin->snextc();
18158  }
18159  return __ret;
18160  }
18161 
18162  template<typename _CharT, typename _Traits>
18163  inline streamsize
18164  __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
18165  basic_streambuf<_CharT, _Traits>* __sbout)
18166  {
18167  bool __ineof;
18168  return __copy_streambufs_eof(__sbin, __sbout, __ineof);
18169  }
18170 
18171 
18172 
18173 
18174  extern template class basic_streambuf<char>;
18175  extern template
18176  streamsize
18177  __copy_streambufs(basic_streambuf<char>*,
18178  basic_streambuf<char>*);
18179  extern template
18180  streamsize
18181  __copy_streambufs_eof(basic_streambuf<char>*,
18182  basic_streambuf<char>*, bool&);
18183 
18184 
18185  extern template class basic_streambuf<wchar_t>;
18186  extern template
18187  streamsize
18188  __copy_streambufs(basic_streambuf<wchar_t>*,
18189  basic_streambuf<wchar_t>*);
18190  extern template
18191  streamsize
18192  __copy_streambufs_eof(basic_streambuf<wchar_t>*,
18193  basic_streambuf<wchar_t>*, bool&);
18194 
18195 
18196 
18197 
18198 }
18199 # 829 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/streambuf" 2 3
18200 # 44 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
18201 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 1 3
18202 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
18203 
18204 
18205 
18206 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 1 3
18207 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18208 
18209 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 1 3
18210 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18211 # 50 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18212 # 1 "/usr/include/wctype.h" 1 3 4
18213 # 33 "/usr/include/wctype.h" 3 4
18214 # 1 "/usr/include/wchar.h" 1 3 4
18215 # 34 "/usr/include/wctype.h" 2 3 4
18216 # 52 "/usr/include/wctype.h" 3 4
18217 typedef unsigned long int wctype_t;
18218 # 71 "/usr/include/wctype.h" 3 4
18219 enum
18220 {
18221  __ISwupper = 0,
18222  __ISwlower = 1,
18223  __ISwalpha = 2,
18224  __ISwdigit = 3,
18225  __ISwxdigit = 4,
18226  __ISwspace = 5,
18227  __ISwprint = 6,
18228  __ISwgraph = 7,
18229  __ISwblank = 8,
18230  __ISwcntrl = 9,
18231  __ISwpunct = 10,
18232  __ISwalnum = 11,
18233 
18234  _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))),
18235  _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))),
18236  _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))),
18237  _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))),
18238  _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))),
18239  _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))),
18240  _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))),
18241  _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))),
18242  _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))),
18243  _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))),
18244  _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))),
18245  _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24))))
18246 };
18247 
18248 
18249 
18250 extern "C" {
18251 # 111 "/usr/include/wctype.h" 3 4
18252 extern int iswalnum (wint_t __wc) throw ();
18253 
18254 
18255 
18256 
18257 
18258 extern int iswalpha (wint_t __wc) throw ();
18259 
18260 
18261 extern int iswcntrl (wint_t __wc) throw ();
18262 
18263 
18264 
18265 extern int iswdigit (wint_t __wc) throw ();
18266 
18267 
18268 
18269 extern int iswgraph (wint_t __wc) throw ();
18270 
18271 
18272 
18273 
18274 extern int iswlower (wint_t __wc) throw ();
18275 
18276 
18277 extern int iswprint (wint_t __wc) throw ();
18278 
18279 
18280 
18281 
18282 extern int iswpunct (wint_t __wc) throw ();
18283 
18284 
18285 
18286 
18287 extern int iswspace (wint_t __wc) throw ();
18288 
18289 
18290 
18291 
18292 extern int iswupper (wint_t __wc) throw ();
18293 
18294 
18295 
18296 
18297 extern int iswxdigit (wint_t __wc) throw ();
18298 
18299 
18300 
18301 
18302 
18303 extern int iswblank (wint_t __wc) throw ();
18304 # 171 "/usr/include/wctype.h" 3 4
18305 extern wctype_t wctype (const char *__property) throw ();
18306 
18307 
18308 
18309 extern int iswctype (wint_t __wc, wctype_t __desc) throw ();
18310 # 186 "/usr/include/wctype.h" 3 4
18311 typedef const __int32_t *wctrans_t;
18312 
18313 
18314 
18315 
18316 
18317 
18318 
18319 extern wint_t towlower (wint_t __wc) throw ();
18320 
18321 
18322 extern wint_t towupper (wint_t __wc) throw ();
18323 
18324 
18325 }
18326 # 213 "/usr/include/wctype.h" 3 4
18327 extern "C" {
18328 
18329 
18330 
18331 
18332 extern wctrans_t wctrans (const char *__property) throw ();
18333 
18334 
18335 extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();
18336 # 230 "/usr/include/wctype.h" 3 4
18337 extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw ();
18338 
18339 
18340 
18341 
18342 
18343 extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw ();
18344 
18345 
18346 extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw ();
18347 
18348 
18349 
18350 extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw ();
18351 
18352 
18353 
18354 extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw ();
18355 
18356 
18357 
18358 
18359 extern int iswlower_l (wint_t __wc, __locale_t __locale) throw ();
18360 
18361 
18362 extern int iswprint_l (wint_t __wc, __locale_t __locale) throw ();
18363 
18364 
18365 
18366 
18367 extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw ();
18368 
18369 
18370 
18371 
18372 extern int iswspace_l (wint_t __wc, __locale_t __locale) throw ();
18373 
18374 
18375 
18376 
18377 extern int iswupper_l (wint_t __wc, __locale_t __locale) throw ();
18378 
18379 
18380 
18381 
18382 extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw ();
18383 
18384 
18385 
18386 
18387 extern int iswblank_l (wint_t __wc, __locale_t __locale) throw ();
18388 
18389 
18390 
18391 extern wctype_t wctype_l (const char *__property, __locale_t __locale)
18392  throw ();
18393 
18394 
18395 
18396 extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale)
18397  throw ();
18398 
18399 
18400 
18401 
18402 
18403 
18404 
18405 extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw ();
18406 
18407 
18408 extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw ();
18409 
18410 
18411 
18412 extern wctrans_t wctrans_l (const char *__property, __locale_t __locale)
18413  throw ();
18414 
18415 
18416 extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
18417  __locale_t __locale) throw ();
18418 
18419 
18420 
18421 }
18422 # 51 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 2 3
18423 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cwctype" 3
18424 namespace std
18425 {
18426  using ::wctrans_t;
18427  using ::wctype_t;
18428  using ::wint_t;
18429 
18430  using ::iswalnum;
18431  using ::iswalpha;
18432 
18433  using ::iswblank;
18434 
18435  using ::iswcntrl;
18436  using ::iswctype;
18437  using ::iswdigit;
18438  using ::iswgraph;
18439  using ::iswlower;
18440  using ::iswprint;
18441  using ::iswpunct;
18442  using ::iswspace;
18443  using ::iswupper;
18444  using ::iswxdigit;
18445  using ::towctrans;
18446  using ::towlower;
18447  using ::towupper;
18448  using ::wctrans;
18449  using ::wctype;
18450 }
18451 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18452 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 1 3
18453 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cctype" 3
18454 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18455 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_base.h" 1 3
18456 # 36 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_base.h" 3
18457 namespace std __attribute__ ((__visibility__ ("default")))
18458 {
18459 
18460 
18461 
18462  struct ctype_base
18463  {
18464 
18465  typedef const int* __to_type;
18466 
18467 
18468 
18469  typedef unsigned short mask;
18470  static const mask upper = _ISupper;
18471  static const mask lower = _ISlower;
18472  static const mask alpha = _ISalpha;
18473  static const mask digit = _ISdigit;
18474  static const mask xdigit = _ISxdigit;
18475  static const mask space = _ISspace;
18476  static const mask print = _ISprint;
18477  static const mask graph = _ISalpha | _ISdigit | _ISpunct;
18478  static const mask cntrl = _IScntrl;
18479  static const mask punct = _ISpunct;
18480  static const mask alnum = _ISalpha | _ISdigit;
18481  };
18482 
18483 
18484 }
18485 # 42 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18486 
18487 
18488 
18489 
18490 
18491 
18492 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 1 3
18493 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 3
18494 
18495 
18496 
18497 
18498 namespace std __attribute__ ((__visibility__ ("default")))
18499 {
18500 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/streambuf_iterator.h" 3
18501  template<typename _CharT, typename _Traits>
18502  class istreambuf_iterator
18503  : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type,
18504  _CharT*,
18505 
18506 
18507  _CharT>
18508 
18509 
18510 
18511  {
18512  public:
18513 
18514 
18515 
18516  typedef _CharT char_type;
18517  typedef _Traits traits_type;
18518  typedef typename _Traits::int_type int_type;
18519  typedef basic_streambuf<_CharT, _Traits> streambuf_type;
18520  typedef basic_istream<_CharT, _Traits> istream_type;
18521 
18522 
18523  template<typename _CharT2>
18524  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18525  ostreambuf_iterator<_CharT2> >::__type
18526  copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18527  ostreambuf_iterator<_CharT2>);
18528 
18529  template<bool _IsMove, typename _CharT2>
18530  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18531  _CharT2*>::__type
18532  __copy_move_a2(istreambuf_iterator<_CharT2>,
18533  istreambuf_iterator<_CharT2>, _CharT2*);
18534 
18535  template<typename _CharT2>
18536  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18537  istreambuf_iterator<_CharT2> >::__type
18538  find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18539  const _CharT2&);
18540 
18541  private:
18542 
18543 
18544 
18545 
18546 
18547 
18548 
18549  mutable streambuf_type* _M_sbuf;
18550  mutable int_type _M_c;
18551 
18552  public:
18553 
18554  constexpr istreambuf_iterator() noexcept
18555  : _M_sbuf(0), _M_c(traits_type::eof()) { }
18556 
18557 
18558  istreambuf_iterator(const istreambuf_iterator&) noexcept = default;
18559 
18560  ~istreambuf_iterator() = default;
18561 
18562 
18563 
18564  istreambuf_iterator(istream_type& __s) noexcept
18565  : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
18566 
18567 
18568  istreambuf_iterator(streambuf_type* __s) noexcept
18569  : _M_sbuf(__s), _M_c(traits_type::eof()) { }
18570 
18571 
18572 
18573 
18574  char_type
18575  operator*() const
18576  {
18577 
18578 
18579 
18580 
18581 
18582 
18583 
18584  return traits_type::to_char_type(_M_get());
18585  }
18586 
18587 
18588  istreambuf_iterator&
18589  operator++()
18590  {
18591 
18592 
18593  ;
18594  if (_M_sbuf)
18595  {
18596  _M_sbuf->sbumpc();
18597  _M_c = traits_type::eof();
18598  }
18599  return *this;
18600  }
18601 
18602 
18603  istreambuf_iterator
18604  operator++(int)
18605  {
18606 
18607 
18608  ;
18609 
18610  istreambuf_iterator __old = *this;
18611  if (_M_sbuf)
18612  {
18613  __old._M_c = _M_sbuf->sbumpc();
18614  _M_c = traits_type::eof();
18615  }
18616  return __old;
18617  }
18618 
18619 
18620 
18621 
18622 
18623  bool
18624  equal(const istreambuf_iterator& __b) const
18625  { return _M_at_eof() == __b._M_at_eof(); }
18626 
18627  private:
18628  int_type
18629  _M_get() const
18630  {
18631  const int_type __eof = traits_type::eof();
18632  int_type __ret = __eof;
18633  if (_M_sbuf)
18634  {
18635  if (!traits_type::eq_int_type(_M_c, __eof))
18636  __ret = _M_c;
18637  else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
18638  __eof))
18639  _M_c = __ret;
18640  else
18641  _M_sbuf = 0;
18642  }
18643  return __ret;
18644  }
18645 
18646  bool
18647  _M_at_eof() const
18648  {
18649  const int_type __eof = traits_type::eof();
18650  return traits_type::eq_int_type(_M_get(), __eof);
18651  }
18652  };
18653 
18654  template<typename _CharT, typename _Traits>
18655  inline bool
18656  operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
18657  const istreambuf_iterator<_CharT, _Traits>& __b)
18658  { return __a.equal(__b); }
18659 
18660  template<typename _CharT, typename _Traits>
18661  inline bool
18662  operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
18663  const istreambuf_iterator<_CharT, _Traits>& __b)
18664  { return !__a.equal(__b); }
18665 
18666 
18667  template<typename _CharT, typename _Traits>
18668  class ostreambuf_iterator
18669  : public iterator<output_iterator_tag, void, void, void, void>
18670  {
18671  public:
18672 
18673 
18674 
18675  typedef _CharT char_type;
18676  typedef _Traits traits_type;
18677  typedef basic_streambuf<_CharT, _Traits> streambuf_type;
18678  typedef basic_ostream<_CharT, _Traits> ostream_type;
18679 
18680 
18681  template<typename _CharT2>
18682  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
18683  ostreambuf_iterator<_CharT2> >::__type
18684  copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
18685  ostreambuf_iterator<_CharT2>);
18686 
18687  private:
18688  streambuf_type* _M_sbuf;
18689  bool _M_failed;
18690 
18691  public:
18692 
18693  ostreambuf_iterator(ostream_type& __s) noexcept
18694  : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
18695 
18696 
18697  ostreambuf_iterator(streambuf_type* __s) noexcept
18698  : _M_sbuf(__s), _M_failed(!_M_sbuf) { }
18699 
18700 
18701  ostreambuf_iterator&
18702  operator=(_CharT __c)
18703  {
18704  if (!_M_failed &&
18705  _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
18706  _M_failed = true;
18707  return *this;
18708  }
18709 
18710 
18711  ostreambuf_iterator&
18712  operator*()
18713  { return *this; }
18714 
18715 
18716  ostreambuf_iterator&
18717  operator++(int)
18718  { return *this; }
18719 
18720 
18721  ostreambuf_iterator&
18722  operator++()
18723  { return *this; }
18724 
18725 
18726  bool
18727  failed() const noexcept
18728  { return _M_failed; }
18729 
18730  ostreambuf_iterator&
18731  _M_put(const _CharT* __ws, streamsize __len)
18732  {
18733  if (__builtin_expect(!_M_failed, true)
18734  && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,
18735  false))
18736  _M_failed = true;
18737  return *this;
18738  }
18739  };
18740 
18741 
18742  template<typename _CharT>
18743  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18744  ostreambuf_iterator<_CharT> >::__type
18745  copy(istreambuf_iterator<_CharT> __first,
18746  istreambuf_iterator<_CharT> __last,
18747  ostreambuf_iterator<_CharT> __result)
18748  {
18749  if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed)
18750  {
18751  bool __ineof;
18752  __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof);
18753  if (!__ineof)
18754  __result._M_failed = true;
18755  }
18756  return __result;
18757  }
18758 
18759  template<bool _IsMove, typename _CharT>
18760  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18761  ostreambuf_iterator<_CharT> >::__type
18762  __copy_move_a2(_CharT* __first, _CharT* __last,
18763  ostreambuf_iterator<_CharT> __result)
18764  {
18765  const streamsize __num = __last - __first;
18766  if (__num > 0)
18767  __result._M_put(__first, __num);
18768  return __result;
18769  }
18770 
18771  template<bool _IsMove, typename _CharT>
18772  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18773  ostreambuf_iterator<_CharT> >::__type
18774  __copy_move_a2(const _CharT* __first, const _CharT* __last,
18775  ostreambuf_iterator<_CharT> __result)
18776  {
18777  const streamsize __num = __last - __first;
18778  if (__num > 0)
18779  __result._M_put(__first, __num);
18780  return __result;
18781  }
18782 
18783  template<bool _IsMove, typename _CharT>
18784  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18785  _CharT*>::__type
18786  __copy_move_a2(istreambuf_iterator<_CharT> __first,
18787  istreambuf_iterator<_CharT> __last, _CharT* __result)
18788  {
18789  typedef istreambuf_iterator<_CharT> __is_iterator_type;
18790  typedef typename __is_iterator_type::traits_type traits_type;
18791  typedef typename __is_iterator_type::streambuf_type streambuf_type;
18792  typedef typename traits_type::int_type int_type;
18793 
18794  if (__first._M_sbuf && !__last._M_sbuf)
18795  {
18796  streambuf_type* __sb = __first._M_sbuf;
18797  int_type __c = __sb->sgetc();
18798  while (!traits_type::eq_int_type(__c, traits_type::eof()))
18799  {
18800  const streamsize __n = __sb->egptr() - __sb->gptr();
18801  if (__n > 1)
18802  {
18803  traits_type::copy(__result, __sb->gptr(), __n);
18804  __sb->__safe_gbump(__n);
18805  __result += __n;
18806  __c = __sb->underflow();
18807  }
18808  else
18809  {
18810  *__result++ = traits_type::to_char_type(__c);
18811  __c = __sb->snextc();
18812  }
18813  }
18814  }
18815  return __result;
18816  }
18817 
18818  template<typename _CharT>
18819  typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
18820  istreambuf_iterator<_CharT> >::__type
18821  find(istreambuf_iterator<_CharT> __first,
18822  istreambuf_iterator<_CharT> __last, const _CharT& __val)
18823  {
18824  typedef istreambuf_iterator<_CharT> __is_iterator_type;
18825  typedef typename __is_iterator_type::traits_type traits_type;
18826  typedef typename __is_iterator_type::streambuf_type streambuf_type;
18827  typedef typename traits_type::int_type int_type;
18828 
18829  if (__first._M_sbuf && !__last._M_sbuf)
18830  {
18831  const int_type __ival = traits_type::to_int_type(__val);
18832  streambuf_type* __sb = __first._M_sbuf;
18833  int_type __c = __sb->sgetc();
18834  while (!traits_type::eq_int_type(__c, traits_type::eof())
18835  && !traits_type::eq_int_type(__c, __ival))
18836  {
18837  streamsize __n = __sb->egptr() - __sb->gptr();
18838  if (__n > 1)
18839  {
18840  const _CharT* __p = traits_type::find(__sb->gptr(),
18841  __n, __val);
18842  if (__p)
18843  __n = __p - __sb->gptr();
18844  __sb->__safe_gbump(__n);
18845  __c = __sb->sgetc();
18846  }
18847  else
18848  __c = __sb->snextc();
18849  }
18850 
18851  if (!traits_type::eq_int_type(__c, traits_type::eof()))
18852  __first._M_c = __c;
18853  else
18854  __first._M_sbuf = 0;
18855  }
18856  return __first;
18857  }
18858 
18859 
18860 
18861 
18862 }
18863 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
18864 
18865 namespace std __attribute__ ((__visibility__ ("default")))
18866 {
18867 # 64 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18868  template<typename _Tp>
18869  void
18870  __convert_to_v(const char*, _Tp&, ios_base::iostate&,
18871  const __c_locale&) throw();
18872 
18873 
18874  template<>
18875  void
18876  __convert_to_v(const char*, float&, ios_base::iostate&,
18877  const __c_locale&) throw();
18878 
18879  template<>
18880  void
18881  __convert_to_v(const char*, double&, ios_base::iostate&,
18882  const __c_locale&) throw();
18883 
18884  template<>
18885  void
18886  __convert_to_v(const char*, long double&, ios_base::iostate&,
18887  const __c_locale&) throw();
18888 
18889 
18890 
18891  template<typename _CharT, typename _Traits>
18892  struct __pad
18893  {
18894  static void
18895  _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
18896  const _CharT* __olds, streamsize __newlen, streamsize __oldlen);
18897  };
18898 
18899 
18900 
18901 
18902 
18903 
18904  template<typename _CharT>
18905  _CharT*
18906  __add_grouping(_CharT* __s, _CharT __sep,
18907  const char* __gbeg, size_t __gsize,
18908  const _CharT* __first, const _CharT* __last);
18909 
18910 
18911 
18912 
18913  template<typename _CharT>
18914  inline
18915  ostreambuf_iterator<_CharT>
18916  __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
18917  {
18918  __s._M_put(__ws, __len);
18919  return __s;
18920  }
18921 
18922 
18923  template<typename _CharT, typename _OutIter>
18924  inline
18925  _OutIter
18926  __write(_OutIter __s, const _CharT* __ws, int __len)
18927  {
18928  for (int __j = 0; __j < __len; __j++, ++__s)
18929  *__s = __ws[__j];
18930  return __s;
18931  }
18932 # 142 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18933  template<typename _CharT>
18934  class __ctype_abstract_base : public locale::facet, public ctype_base
18935  {
18936  public:
18937 
18938 
18939  typedef _CharT char_type;
18940 # 161 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18941  bool
18942  is(mask __m, char_type __c) const
18943  { return this->do_is(__m, __c); }
18944 # 178 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18945  const char_type*
18946  is(const char_type *__lo, const char_type *__hi, mask *__vec) const
18947  { return this->do_is(__lo, __hi, __vec); }
18948 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18949  const char_type*
18950  scan_is(mask __m, const char_type* __lo, const char_type* __hi) const
18951  { return this->do_scan_is(__m, __lo, __hi); }
18952 # 210 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18953  const char_type*
18954  scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
18955  { return this->do_scan_not(__m, __lo, __hi); }
18956 # 224 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18957  char_type
18958  toupper(char_type __c) const
18959  { return this->do_toupper(__c); }
18960 # 239 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18961  const char_type*
18962  toupper(char_type *__lo, const char_type* __hi) const
18963  { return this->do_toupper(__lo, __hi); }
18964 # 253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18965  char_type
18966  tolower(char_type __c) const
18967  { return this->do_tolower(__c); }
18968 # 268 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18969  const char_type*
18970  tolower(char_type* __lo, const char_type* __hi) const
18971  { return this->do_tolower(__lo, __hi); }
18972 # 285 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18973  char_type
18974  widen(char __c) const
18975  { return this->do_widen(__c); }
18976 # 304 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18977  const char*
18978  widen(const char* __lo, const char* __hi, char_type* __to) const
18979  { return this->do_widen(__lo, __hi, __to); }
18980 # 323 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18981  char
18982  narrow(char_type __c, char __dfault) const
18983  { return this->do_narrow(__c, __dfault); }
18984 # 345 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18985  const char_type*
18986  narrow(const char_type* __lo, const char_type* __hi,
18987  char __dfault, char* __to) const
18988  { return this->do_narrow(__lo, __hi, __dfault, __to); }
18989 
18990  protected:
18991  explicit
18992  __ctype_abstract_base(size_t __refs = 0): facet(__refs) { }
18993 
18994  virtual
18995  ~__ctype_abstract_base() { }
18996 # 370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
18997  virtual bool
18998  do_is(mask __m, char_type __c) const = 0;
18999 # 389 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19000  virtual const char_type*
19001  do_is(const char_type* __lo, const char_type* __hi,
19002  mask* __vec) const = 0;
19003 # 408 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19004  virtual const char_type*
19005  do_scan_is(mask __m, const char_type* __lo,
19006  const char_type* __hi) const = 0;
19007 # 427 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19008  virtual const char_type*
19009  do_scan_not(mask __m, const char_type* __lo,
19010  const char_type* __hi) const = 0;
19011 # 445 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19012  virtual char_type
19013  do_toupper(char_type __c) const = 0;
19014 # 462 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19015  virtual const char_type*
19016  do_toupper(char_type* __lo, const char_type* __hi) const = 0;
19017 # 478 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19018  virtual char_type
19019  do_tolower(char_type __c) const = 0;
19020 # 495 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19021  virtual const char_type*
19022  do_tolower(char_type* __lo, const char_type* __hi) const = 0;
19023 # 514 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19024  virtual char_type
19025  do_widen(char __c) const = 0;
19026 # 535 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19027  virtual const char*
19028  do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0;
19029 # 556 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19030  virtual char
19031  do_narrow(char_type __c, char __dfault) const = 0;
19032 # 581 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19033  virtual const char_type*
19034  do_narrow(const char_type* __lo, const char_type* __hi,
19035  char __dfault, char* __to) const = 0;
19036  };
19037 # 604 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19038  template<typename _CharT>
19039  class ctype : public __ctype_abstract_base<_CharT>
19040  {
19041  public:
19042 
19043  typedef _CharT char_type;
19044  typedef typename __ctype_abstract_base<_CharT>::mask mask;
19045 
19046 
19047  static locale::id id;
19048 
19049  explicit
19050  ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
19051 
19052  protected:
19053  virtual
19054  ~ctype();
19055 
19056  virtual bool
19057  do_is(mask __m, char_type __c) const;
19058 
19059  virtual const char_type*
19060  do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
19061 
19062  virtual const char_type*
19063  do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
19064 
19065  virtual const char_type*
19066  do_scan_not(mask __m, const char_type* __lo,
19067  const char_type* __hi) const;
19068 
19069  virtual char_type
19070  do_toupper(char_type __c) const;
19071 
19072  virtual const char_type*
19073  do_toupper(char_type* __lo, const char_type* __hi) const;
19074 
19075  virtual char_type
19076  do_tolower(char_type __c) const;
19077 
19078  virtual const char_type*
19079  do_tolower(char_type* __lo, const char_type* __hi) const;
19080 
19081  virtual char_type
19082  do_widen(char __c) const;
19083 
19084  virtual const char*
19085  do_widen(const char* __lo, const char* __hi, char_type* __dest) const;
19086 
19087  virtual char
19088  do_narrow(char_type, char __dfault) const;
19089 
19090  virtual const char_type*
19091  do_narrow(const char_type* __lo, const char_type* __hi,
19092  char __dfault, char* __to) const;
19093  };
19094 
19095  template<typename _CharT>
19096  locale::id ctype<_CharT>::id;
19097 # 673 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19098  template<>
19099  class ctype<char> : public locale::facet, public ctype_base
19100  {
19101  public:
19102 
19103 
19104  typedef char char_type;
19105 
19106  protected:
19107 
19108  __c_locale _M_c_locale_ctype;
19109  bool _M_del;
19110  __to_type _M_toupper;
19111  __to_type _M_tolower;
19112  const mask* _M_table;
19113  mutable char _M_widen_ok;
19114  mutable char _M_widen[1 + static_cast<unsigned char>(-1)];
19115  mutable char _M_narrow[1 + static_cast<unsigned char>(-1)];
19116  mutable char _M_narrow_ok;
19117 
19118 
19119  public:
19120 
19121  static locale::id id;
19122 
19123  static const size_t table_size = 1 + static_cast<unsigned char>(-1);
19124 # 710 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19125  explicit
19126  ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0);
19127 # 723 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19128  explicit
19129  ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false,
19130  size_t __refs = 0);
19131 # 736 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19132  inline bool
19133  is(mask __m, char __c) const;
19134 # 751 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19135  inline const char*
19136  is(const char* __lo, const char* __hi, mask* __vec) const;
19137 # 765 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19138  inline const char*
19139  scan_is(mask __m, const char* __lo, const char* __hi) const;
19140 # 779 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19141  inline const char*
19142  scan_not(mask __m, const char* __lo, const char* __hi) const;
19143 # 794 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19144  char_type
19145  toupper(char_type __c) const
19146  { return this->do_toupper(__c); }
19147 # 811 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19148  const char_type*
19149  toupper(char_type *__lo, const char_type* __hi) const
19150  { return this->do_toupper(__lo, __hi); }
19151 # 827 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19152  char_type
19153  tolower(char_type __c) const
19154  { return this->do_tolower(__c); }
19155 # 844 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19156  const char_type*
19157  tolower(char_type* __lo, const char_type* __hi) const
19158  { return this->do_tolower(__lo, __hi); }
19159 # 864 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19160  char_type
19161  widen(char __c) const
19162  {
19163  if (_M_widen_ok)
19164  return _M_widen[static_cast<unsigned char>(__c)];
19165  this->_M_widen_init();
19166  return this->do_widen(__c);
19167  }
19168 # 891 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19169  const char*
19170  widen(const char* __lo, const char* __hi, char_type* __to) const
19171  {
19172  if (_M_widen_ok == 1)
19173  {
19174  __builtin_memcpy(__to, __lo, __hi - __lo);
19175  return __hi;
19176  }
19177  if (!_M_widen_ok)
19178  _M_widen_init();
19179  return this->do_widen(__lo, __hi, __to);
19180  }
19181 # 922 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19182  char
19183  narrow(char_type __c, char __dfault) const
19184  {
19185  if (_M_narrow[static_cast<unsigned char>(__c)])
19186  return _M_narrow[static_cast<unsigned char>(__c)];
19187  const char __t = do_narrow(__c, __dfault);
19188  if (__t != __dfault)
19189  _M_narrow[static_cast<unsigned char>(__c)] = __t;
19190  return __t;
19191  }
19192 # 955 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19193  const char_type*
19194  narrow(const char_type* __lo, const char_type* __hi,
19195  char __dfault, char* __to) const
19196  {
19197  if (__builtin_expect(_M_narrow_ok == 1, true))
19198  {
19199  __builtin_memcpy(__to, __lo, __hi - __lo);
19200  return __hi;
19201  }
19202  if (!_M_narrow_ok)
19203  _M_narrow_init();
19204  return this->do_narrow(__lo, __hi, __dfault, __to);
19205  }
19206 
19207 
19208 
19209 
19210 
19211  const mask*
19212  table() const throw()
19213  { return _M_table; }
19214 
19215 
19216  static const mask*
19217  classic_table() throw();
19218  protected:
19219 
19220 
19221 
19222 
19223 
19224 
19225 
19226  virtual
19227  ~ctype();
19228 # 1004 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19229  virtual char_type
19230  do_toupper(char_type __c) const;
19231 # 1021 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19232  virtual const char_type*
19233  do_toupper(char_type* __lo, const char_type* __hi) const;
19234 # 1037 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19235  virtual char_type
19236  do_tolower(char_type __c) const;
19237 # 1054 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19238  virtual const char_type*
19239  do_tolower(char_type* __lo, const char_type* __hi) const;
19240 # 1074 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19241  virtual char_type
19242  do_widen(char __c) const
19243  { return __c; }
19244 # 1097 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19245  virtual const char*
19246  do_widen(const char* __lo, const char* __hi, char_type* __to) const
19247  {
19248  __builtin_memcpy(__to, __lo, __hi - __lo);
19249  return __hi;
19250  }
19251 # 1123 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19252  virtual char
19253  do_narrow(char_type __c, char __dfault) const
19254  { return __c; }
19255 # 1149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19256  virtual const char_type*
19257  do_narrow(const char_type* __lo, const char_type* __hi,
19258  char __dfault, char* __to) const
19259  {
19260  __builtin_memcpy(__to, __lo, __hi - __lo);
19261  return __hi;
19262  }
19263 
19264  private:
19265  void _M_narrow_init() const;
19266  void _M_widen_init() const;
19267  };
19268 # 1174 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19269  template<>
19270  class ctype<wchar_t> : public __ctype_abstract_base<wchar_t>
19271  {
19272  public:
19273 
19274 
19275  typedef wchar_t char_type;
19276  typedef wctype_t __wmask_type;
19277 
19278  protected:
19279  __c_locale _M_c_locale_ctype;
19280 
19281 
19282  bool _M_narrow_ok;
19283  char _M_narrow[128];
19284  wint_t _M_widen[1 + static_cast<unsigned char>(-1)];
19285 
19286 
19287  mask _M_bit[16];
19288  __wmask_type _M_wmask[16];
19289 
19290  public:
19291 
19292 
19293  static locale::id id;
19294 # 1207 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19295  explicit
19296  ctype(size_t __refs = 0);
19297 # 1218 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19298  explicit
19299  ctype(__c_locale __cloc, size_t __refs = 0);
19300 
19301  protected:
19302  __wmask_type
19303  _M_convert_to_wmask(const mask __m) const throw();
19304 
19305 
19306  virtual
19307  ~ctype();
19308 # 1242 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19309  virtual bool
19310  do_is(mask __m, char_type __c) const;
19311 # 1261 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19312  virtual const char_type*
19313  do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
19314 # 1279 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19315  virtual const char_type*
19316  do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
19317 # 1297 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19318  virtual const char_type*
19319  do_scan_not(mask __m, const char_type* __lo,
19320  const char_type* __hi) const;
19321 # 1314 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19322  virtual char_type
19323  do_toupper(char_type __c) const;
19324 # 1331 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19325  virtual const char_type*
19326  do_toupper(char_type* __lo, const char_type* __hi) const;
19327 # 1347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19328  virtual char_type
19329  do_tolower(char_type __c) const;
19330 # 1364 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19331  virtual const char_type*
19332  do_tolower(char_type* __lo, const char_type* __hi) const;
19333 # 1384 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19334  virtual char_type
19335  do_widen(char __c) const;
19336 # 1406 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19337  virtual const char*
19338  do_widen(const char* __lo, const char* __hi, char_type* __to) const;
19339 # 1429 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19340  virtual char
19341  do_narrow(char_type __c, char __dfault) const;
19342 # 1455 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19343  virtual const char_type*
19344  do_narrow(const char_type* __lo, const char_type* __hi,
19345  char __dfault, char* __to) const;
19346 
19347 
19348  void
19349  _M_initialize_ctype() throw();
19350  };
19351 
19352 
19353 
19354  template<typename _CharT>
19355  class ctype_byname : public ctype<_CharT>
19356  {
19357  public:
19358  typedef typename ctype<_CharT>::mask mask;
19359 
19360  explicit
19361  ctype_byname(const char* __s, size_t __refs = 0);
19362 
19363  protected:
19364  virtual
19365  ~ctype_byname() { };
19366  };
19367 
19368 
19369  template<>
19370  class ctype_byname<char> : public ctype<char>
19371  {
19372  public:
19373  explicit
19374  ctype_byname(const char* __s, size_t __refs = 0);
19375 
19376  protected:
19377  virtual
19378  ~ctype_byname();
19379  };
19380 
19381 
19382  template<>
19383  class ctype_byname<wchar_t> : public ctype<wchar_t>
19384  {
19385  public:
19386  explicit
19387  ctype_byname(const char* __s, size_t __refs = 0);
19388 
19389  protected:
19390  virtual
19391  ~ctype_byname();
19392  };
19393 
19394 
19395 
19396 }
19397 
19398 
19399 
19400 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_inline.h" 1 3
19401 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/ctype_inline.h" 3
19402 namespace std __attribute__ ((__visibility__ ("default")))
19403 {
19404 
19405 
19406  bool
19407  ctype<char>::
19408  is(mask __m, char __c) const
19409  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
19410 
19411  const char*
19412  ctype<char>::
19413  is(const char* __low, const char* __high, mask* __vec) const
19414  {
19415  while (__low < __high)
19416  *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
19417  return __high;
19418  }
19419 
19420  const char*
19421  ctype<char>::
19422  scan_is(mask __m, const char* __low, const char* __high) const
19423  {
19424  while (__low < __high
19425  && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
19426  ++__low;
19427  return __low;
19428  }
19429 
19430  const char*
19431  ctype<char>::
19432  scan_not(mask __m, const char* __low, const char* __high) const
19433  {
19434  while (__low < __high
19435  && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
19436  ++__low;
19437  return __low;
19438  }
19439 
19440 
19441 }
19442 # 1512 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
19443 
19444 namespace std __attribute__ ((__visibility__ ("default")))
19445 {
19446 
19447 
19448 
19449  class __num_base
19450  {
19451  public:
19452 
19453 
19454  enum
19455  {
19456  _S_ominus,
19457  _S_oplus,
19458  _S_ox,
19459  _S_oX,
19460  _S_odigits,
19461  _S_odigits_end = _S_odigits + 16,
19462  _S_oudigits = _S_odigits_end,
19463  _S_oudigits_end = _S_oudigits + 16,
19464  _S_oe = _S_odigits + 14,
19465  _S_oE = _S_oudigits + 14,
19466  _S_oend = _S_oudigits_end
19467  };
19468 
19469 
19470 
19471 
19472 
19473 
19474  static const char* _S_atoms_out;
19475 
19476 
19477 
19478  static const char* _S_atoms_in;
19479 
19480  enum
19481  {
19482  _S_iminus,
19483  _S_iplus,
19484  _S_ix,
19485  _S_iX,
19486  _S_izero,
19487  _S_ie = _S_izero + 14,
19488  _S_iE = _S_izero + 20,
19489  _S_iend = 26
19490  };
19491 
19492 
19493 
19494  static void
19495  _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw();
19496  };
19497 
19498  template<typename _CharT>
19499  struct __numpunct_cache : public locale::facet
19500  {
19501  const char* _M_grouping;
19502  size_t _M_grouping_size;
19503  bool _M_use_grouping;
19504  const _CharT* _M_truename;
19505  size_t _M_truename_size;
19506  const _CharT* _M_falsename;
19507  size_t _M_falsename_size;
19508  _CharT _M_decimal_point;
19509  _CharT _M_thousands_sep;
19510 
19511 
19512 
19513 
19514 
19515  _CharT _M_atoms_out[__num_base::_S_oend];
19516 
19517 
19518 
19519 
19520 
19521  _CharT _M_atoms_in[__num_base::_S_iend];
19522 
19523  bool _M_allocated;
19524 
19525  __numpunct_cache(size_t __refs = 0)
19526  : facet(__refs), _M_grouping(0), _M_grouping_size(0),
19527  _M_use_grouping(false),
19528  _M_truename(0), _M_truename_size(0), _M_falsename(0),
19529  _M_falsename_size(0), _M_decimal_point(_CharT()),
19530  _M_thousands_sep(_CharT()), _M_allocated(false)
19531  { }
19532 
19533  ~__numpunct_cache();
19534 
19535  void
19536  _M_cache(const locale& __loc);
19537 
19538  private:
19539  __numpunct_cache&
19540  operator=(const __numpunct_cache&);
19541 
19542  explicit
19543  __numpunct_cache(const __numpunct_cache&);
19544  };
19545 
19546  template<typename _CharT>
19547  __numpunct_cache<_CharT>::~__numpunct_cache()
19548  {
19549  if (_M_allocated)
19550  {
19551  delete [] _M_grouping;
19552  delete [] _M_truename;
19553  delete [] _M_falsename;
19554  }
19555  }
19556 # 1640 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19557  template<typename _CharT>
19558  class numpunct : public locale::facet
19559  {
19560  public:
19561 
19562 
19563 
19564  typedef _CharT char_type;
19565  typedef basic_string<_CharT> string_type;
19566 
19567  typedef __numpunct_cache<_CharT> __cache_type;
19568 
19569  protected:
19570  __cache_type* _M_data;
19571 
19572  public:
19573 
19574  static locale::id id;
19575 
19576 
19577 
19578 
19579 
19580 
19581  explicit
19582  numpunct(size_t __refs = 0)
19583  : facet(__refs), _M_data(0)
19584  { _M_initialize_numpunct(); }
19585 # 1678 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19586  explicit
19587  numpunct(__cache_type* __cache, size_t __refs = 0)
19588  : facet(__refs), _M_data(__cache)
19589  { _M_initialize_numpunct(); }
19590 # 1692 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19591  explicit
19592  numpunct(__c_locale __cloc, size_t __refs = 0)
19593  : facet(__refs), _M_data(0)
19594  { _M_initialize_numpunct(__cloc); }
19595 # 1706 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19596  char_type
19597  decimal_point() const
19598  { return this->do_decimal_point(); }
19599 # 1719 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19600  char_type
19601  thousands_sep() const
19602  { return this->do_thousands_sep(); }
19603 # 1750 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19604  string
19605  grouping() const
19606  { return this->do_grouping(); }
19607 # 1763 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19608  string_type
19609  truename() const
19610  { return this->do_truename(); }
19611 # 1776 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19612  string_type
19613  falsename() const
19614  { return this->do_falsename(); }
19615 
19616  protected:
19617 
19618  virtual
19619  ~numpunct();
19620 # 1793 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19621  virtual char_type
19622  do_decimal_point() const
19623  { return _M_data->_M_decimal_point; }
19624 # 1805 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19625  virtual char_type
19626  do_thousands_sep() const
19627  { return _M_data->_M_thousands_sep; }
19628 # 1818 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19629  virtual string
19630  do_grouping() const
19631  { return _M_data->_M_grouping; }
19632 # 1831 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19633  virtual string_type
19634  do_truename() const
19635  { return _M_data->_M_truename; }
19636 # 1844 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19637  virtual string_type
19638  do_falsename() const
19639  { return _M_data->_M_falsename; }
19640 
19641 
19642  void
19643  _M_initialize_numpunct(__c_locale __cloc = 0);
19644  };
19645 
19646  template<typename _CharT>
19647  locale::id numpunct<_CharT>::id;
19648 
19649  template<>
19650  numpunct<char>::~numpunct();
19651 
19652  template<>
19653  void
19654  numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);
19655 
19656 
19657  template<>
19658  numpunct<wchar_t>::~numpunct();
19659 
19660  template<>
19661  void
19662  numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
19663 
19664 
19665 
19666  template<typename _CharT>
19667  class numpunct_byname : public numpunct<_CharT>
19668  {
19669  public:
19670  typedef _CharT char_type;
19671  typedef basic_string<_CharT> string_type;
19672 
19673  explicit
19674  numpunct_byname(const char* __s, size_t __refs = 0)
19675  : numpunct<_CharT>(__refs)
19676  {
19677  if (__builtin_strcmp(__s, "C") != 0
19678  && __builtin_strcmp(__s, "POSIX") != 0)
19679  {
19680  __c_locale __tmp;
19681  this->_S_create_c_locale(__tmp, __s);
19682  this->_M_initialize_numpunct(__tmp);
19683  this->_S_destroy_c_locale(__tmp);
19684  }
19685  }
19686 
19687  protected:
19688  virtual
19689  ~numpunct_byname() { }
19690  };
19691 # 1914 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19692  template<typename _CharT, typename _InIter>
19693  class num_get : public locale::facet
19694  {
19695  public:
19696 
19697 
19698 
19699  typedef _CharT char_type;
19700  typedef _InIter iter_type;
19701 
19702 
19703 
19704  static locale::id id;
19705 # 1935 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19706  explicit
19707  num_get(size_t __refs = 0) : facet(__refs) { }
19708 # 1961 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19709  iter_type
19710  get(iter_type __in, iter_type __end, ios_base& __io,
19711  ios_base::iostate& __err, bool& __v) const
19712  { return this->do_get(__in, __end, __io, __err, __v); }
19713 # 1998 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19714  iter_type
19715  get(iter_type __in, iter_type __end, ios_base& __io,
19716  ios_base::iostate& __err, long& __v) const
19717  { return this->do_get(__in, __end, __io, __err, __v); }
19718 
19719  iter_type
19720  get(iter_type __in, iter_type __end, ios_base& __io,
19721  ios_base::iostate& __err, unsigned short& __v) const
19722  { return this->do_get(__in, __end, __io, __err, __v); }
19723 
19724  iter_type
19725  get(iter_type __in, iter_type __end, ios_base& __io,
19726  ios_base::iostate& __err, unsigned int& __v) const
19727  { return this->do_get(__in, __end, __io, __err, __v); }
19728 
19729  iter_type
19730  get(iter_type __in, iter_type __end, ios_base& __io,
19731  ios_base::iostate& __err, unsigned long& __v) const
19732  { return this->do_get(__in, __end, __io, __err, __v); }
19733 
19734 
19735  iter_type
19736  get(iter_type __in, iter_type __end, ios_base& __io,
19737  ios_base::iostate& __err, long long& __v) const
19738  { return this->do_get(__in, __end, __io, __err, __v); }
19739 
19740  iter_type
19741  get(iter_type __in, iter_type __end, ios_base& __io,
19742  ios_base::iostate& __err, unsigned long long& __v) const
19743  { return this->do_get(__in, __end, __io, __err, __v); }
19744 # 2058 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19745  iter_type
19746  get(iter_type __in, iter_type __end, ios_base& __io,
19747  ios_base::iostate& __err, float& __v) const
19748  { return this->do_get(__in, __end, __io, __err, __v); }
19749 
19750  iter_type
19751  get(iter_type __in, iter_type __end, ios_base& __io,
19752  ios_base::iostate& __err, double& __v) const
19753  { return this->do_get(__in, __end, __io, __err, __v); }
19754 
19755  iter_type
19756  get(iter_type __in, iter_type __end, ios_base& __io,
19757  ios_base::iostate& __err, long double& __v) const
19758  { return this->do_get(__in, __end, __io, __err, __v); }
19759 # 2101 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19760  iter_type
19761  get(iter_type __in, iter_type __end, ios_base& __io,
19762  ios_base::iostate& __err, void*& __v) const
19763  { return this->do_get(__in, __end, __io, __err, __v); }
19764 
19765  protected:
19766 
19767  virtual ~num_get() { }
19768 
19769  iter_type
19770  _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,
19771  string&) const;
19772 
19773  template<typename _ValueT>
19774  iter_type
19775  _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,
19776  _ValueT&) const;
19777 
19778  template<typename _CharT2>
19779  typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type
19780  _M_find(const _CharT2*, size_t __len, _CharT2 __c) const
19781  {
19782  int __ret = -1;
19783  if (__len <= 10)
19784  {
19785  if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len))
19786  __ret = __c - _CharT2('0');
19787  }
19788  else
19789  {
19790  if (__c >= _CharT2('0') && __c <= _CharT2('9'))
19791  __ret = __c - _CharT2('0');
19792  else if (__c >= _CharT2('a') && __c <= _CharT2('f'))
19793  __ret = 10 + (__c - _CharT2('a'));
19794  else if (__c >= _CharT2('A') && __c <= _CharT2('F'))
19795  __ret = 10 + (__c - _CharT2('A'));
19796  }
19797  return __ret;
19798  }
19799 
19800  template<typename _CharT2>
19801  typename __gnu_cxx::__enable_if<!__is_char<_CharT2>::__value,
19802  int>::__type
19803  _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const
19804  {
19805  int __ret = -1;
19806  const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c);
19807  if (__q)
19808  {
19809  __ret = __q - __zero;
19810  if (__ret > 15)
19811  __ret -= 6;
19812  }
19813  return __ret;
19814  }
19815 # 2172 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19816  virtual iter_type
19817  do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
19818 
19819  virtual iter_type
19820  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19821  ios_base::iostate& __err, long& __v) const
19822  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19823 
19824  virtual iter_type
19825  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19826  ios_base::iostate& __err, unsigned short& __v) const
19827  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19828 
19829  virtual iter_type
19830  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19831  ios_base::iostate& __err, unsigned int& __v) const
19832  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19833 
19834  virtual iter_type
19835  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19836  ios_base::iostate& __err, unsigned long& __v) const
19837  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19838 
19839 
19840  virtual iter_type
19841  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19842  ios_base::iostate& __err, long long& __v) const
19843  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19844 
19845  virtual iter_type
19846  do_get(iter_type __beg, iter_type __end, ios_base& __io,
19847  ios_base::iostate& __err, unsigned long long& __v) const
19848  { return _M_extract_int(__beg, __end, __io, __err, __v); }
19849 
19850 
19851  virtual iter_type
19852  do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const;
19853 
19854  virtual iter_type
19855  do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
19856  double&) const;
19857 
19858 
19859 
19860 
19861 
19862 
19863 
19864  virtual iter_type
19865  do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
19866  long double&) const;
19867 
19868 
19869  virtual iter_type
19870  do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const;
19871 # 2235 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19872  };
19873 
19874  template<typename _CharT, typename _InIter>
19875  locale::id num_get<_CharT, _InIter>::id;
19876 # 2253 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19877  template<typename _CharT, typename _OutIter>
19878  class num_put : public locale::facet
19879  {
19880  public:
19881 
19882 
19883 
19884  typedef _CharT char_type;
19885  typedef _OutIter iter_type;
19886 
19887 
19888 
19889  static locale::id id;
19890 # 2274 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19891  explicit
19892  num_put(size_t __refs = 0) : facet(__refs) { }
19893 # 2292 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19894  iter_type
19895  put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
19896  { return this->do_put(__s, __io, __fill, __v); }
19897 # 2334 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19898  iter_type
19899  put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
19900  { return this->do_put(__s, __io, __fill, __v); }
19901 
19902  iter_type
19903  put(iter_type __s, ios_base& __io, char_type __fill,
19904  unsigned long __v) const
19905  { return this->do_put(__s, __io, __fill, __v); }
19906 
19907 
19908  iter_type
19909  put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const
19910  { return this->do_put(__s, __io, __fill, __v); }
19911 
19912  iter_type
19913  put(iter_type __s, ios_base& __io, char_type __fill,
19914  unsigned long long __v) const
19915  { return this->do_put(__s, __io, __fill, __v); }
19916 # 2397 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19917  iter_type
19918  put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
19919  { return this->do_put(__s, __io, __fill, __v); }
19920 
19921  iter_type
19922  put(iter_type __s, ios_base& __io, char_type __fill,
19923  long double __v) const
19924  { return this->do_put(__s, __io, __fill, __v); }
19925 # 2422 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19926  iter_type
19927  put(iter_type __s, ios_base& __io, char_type __fill,
19928  const void* __v) const
19929  { return this->do_put(__s, __io, __fill, __v); }
19930 
19931  protected:
19932  template<typename _ValueT>
19933  iter_type
19934  _M_insert_float(iter_type, ios_base& __io, char_type __fill,
19935  char __mod, _ValueT __v) const;
19936 
19937  void
19938  _M_group_float(const char* __grouping, size_t __grouping_size,
19939  char_type __sep, const char_type* __p, char_type* __new,
19940  char_type* __cs, int& __len) const;
19941 
19942  template<typename _ValueT>
19943  iter_type
19944  _M_insert_int(iter_type, ios_base& __io, char_type __fill,
19945  _ValueT __v) const;
19946 
19947  void
19948  _M_group_int(const char* __grouping, size_t __grouping_size,
19949  char_type __sep, ios_base& __io, char_type* __new,
19950  char_type* __cs, int& __len) const;
19951 
19952  void
19953  _M_pad(char_type __fill, streamsize __w, ios_base& __io,
19954  char_type* __new, const char_type* __cs, int& __len) const;
19955 
19956 
19957  virtual
19958  ~num_put() { };
19959 # 2470 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
19960  virtual iter_type
19961  do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const;
19962 
19963  virtual iter_type
19964  do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
19965  { return _M_insert_int(__s, __io, __fill, __v); }
19966 
19967  virtual iter_type
19968  do_put(iter_type __s, ios_base& __io, char_type __fill,
19969  unsigned long __v) const
19970  { return _M_insert_int(__s, __io, __fill, __v); }
19971 
19972 
19973  virtual iter_type
19974  do_put(iter_type __s, ios_base& __io, char_type __fill,
19975  long long __v) const
19976  { return _M_insert_int(__s, __io, __fill, __v); }
19977 
19978  virtual iter_type
19979  do_put(iter_type __s, ios_base& __io, char_type __fill,
19980  unsigned long long __v) const
19981  { return _M_insert_int(__s, __io, __fill, __v); }
19982 
19983 
19984  virtual iter_type
19985  do_put(iter_type, ios_base&, char_type, double) const;
19986 
19987 
19988 
19989 
19990 
19991 
19992  virtual iter_type
19993  do_put(iter_type, ios_base&, char_type, long double) const;
19994 
19995 
19996  virtual iter_type
19997  do_put(iter_type, ios_base&, char_type, const void*) const;
19998 
19999 
20000 
20001 
20002 
20003 
20004 
20005  };
20006 
20007  template <typename _CharT, typename _OutIter>
20008  locale::id num_put<_CharT, _OutIter>::id;
20009 # 2528 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 3
20010  template<typename _CharT>
20011  inline bool
20012  isspace(_CharT __c, const locale& __loc)
20013  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); }
20014 
20015 
20016  template<typename _CharT>
20017  inline bool
20018  isprint(_CharT __c, const locale& __loc)
20019  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); }
20020 
20021 
20022  template<typename _CharT>
20023  inline bool
20024  iscntrl(_CharT __c, const locale& __loc)
20025  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); }
20026 
20027 
20028  template<typename _CharT>
20029  inline bool
20030  isupper(_CharT __c, const locale& __loc)
20031  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); }
20032 
20033 
20034  template<typename _CharT>
20035  inline bool
20036  islower(_CharT __c, const locale& __loc)
20037  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); }
20038 
20039 
20040  template<typename _CharT>
20041  inline bool
20042  isalpha(_CharT __c, const locale& __loc)
20043  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); }
20044 
20045 
20046  template<typename _CharT>
20047  inline bool
20048  isdigit(_CharT __c, const locale& __loc)
20049  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); }
20050 
20051 
20052  template<typename _CharT>
20053  inline bool
20054  ispunct(_CharT __c, const locale& __loc)
20055  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); }
20056 
20057 
20058  template<typename _CharT>
20059  inline bool
20060  isxdigit(_CharT __c, const locale& __loc)
20061  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); }
20062 
20063 
20064  template<typename _CharT>
20065  inline bool
20066  isalnum(_CharT __c, const locale& __loc)
20067  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); }
20068 
20069 
20070  template<typename _CharT>
20071  inline bool
20072  isgraph(_CharT __c, const locale& __loc)
20073  { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
20074 
20075 
20076  template<typename _CharT>
20077  inline _CharT
20078  toupper(_CharT __c, const locale& __loc)
20079  { return use_facet<ctype<_CharT> >(__loc).toupper(__c); }
20080 
20081 
20082  template<typename _CharT>
20083  inline _CharT
20084  tolower(_CharT __c, const locale& __loc)
20085  { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
20086 
20087 
20088 }
20089 
20090 
20091 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 1 3
20092 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20093 
20094 namespace std __attribute__ ((__visibility__ ("default")))
20095 {
20096 
20097 
20098 
20099 
20100  template<typename _Facet>
20101  struct __use_cache
20102  {
20103  const _Facet*
20104  operator() (const locale& __loc) const;
20105  };
20106 
20107 
20108  template<typename _CharT>
20109  struct __use_cache<__numpunct_cache<_CharT> >
20110  {
20111  const __numpunct_cache<_CharT>*
20112  operator() (const locale& __loc) const
20113  {
20114  const size_t __i = numpunct<_CharT>::id._M_id();
20115  const locale::facet** __caches = __loc._M_impl->_M_caches;
20116  if (!__caches[__i])
20117  {
20118  __numpunct_cache<_CharT>* __tmp = 0;
20119  try
20120  {
20121  __tmp = new __numpunct_cache<_CharT>;
20122  __tmp->_M_cache(__loc);
20123  }
20124  catch(...)
20125  {
20126  delete __tmp;
20127  throw;
20128  }
20129  __loc._M_impl->_M_install_cache(__tmp, __i);
20130  }
20131  return static_cast<const __numpunct_cache<_CharT>*>(__caches[__i]);
20132  }
20133  };
20134 
20135  template<typename _CharT>
20136  void
20137  __numpunct_cache<_CharT>::_M_cache(const locale& __loc)
20138  {
20139  _M_allocated = true;
20140 
20141  const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
20142 
20143  char* __grouping = 0;
20144  _CharT* __truename = 0;
20145  _CharT* __falsename = 0;
20146  try
20147  {
20148  _M_grouping_size = __np.grouping().size();
20149  __grouping = new char[_M_grouping_size];
20150  __np.grouping().copy(__grouping, _M_grouping_size);
20151  _M_grouping = __grouping;
20152  _M_use_grouping = (_M_grouping_size
20153  && static_cast<signed char>(_M_grouping[0]) > 0
20154  && (_M_grouping[0]
20155  != __gnu_cxx::__numeric_traits<char>::__max));
20156 
20157  _M_truename_size = __np.truename().size();
20158  __truename = new _CharT[_M_truename_size];
20159  __np.truename().copy(__truename, _M_truename_size);
20160  _M_truename = __truename;
20161 
20162  _M_falsename_size = __np.falsename().size();
20163  __falsename = new _CharT[_M_falsename_size];
20164  __np.falsename().copy(__falsename, _M_falsename_size);
20165  _M_falsename = __falsename;
20166 
20167  _M_decimal_point = __np.decimal_point();
20168  _M_thousands_sep = __np.thousands_sep();
20169 
20170  const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
20171  __ct.widen(__num_base::_S_atoms_out,
20172  __num_base::_S_atoms_out
20173  + __num_base::_S_oend, _M_atoms_out);
20174  __ct.widen(__num_base::_S_atoms_in,
20175  __num_base::_S_atoms_in
20176  + __num_base::_S_iend, _M_atoms_in);
20177  }
20178  catch(...)
20179  {
20180  delete [] __grouping;
20181  delete [] __truename;
20182  delete [] __falsename;
20183  throw;
20184  }
20185  }
20186 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20187  __attribute__ ((__pure__)) bool
20188  __verify_grouping(const char* __grouping, size_t __grouping_size,
20189  const string& __grouping_tmp) throw ();
20190 
20191 
20192 
20193  template<typename _CharT, typename _InIter>
20194  _InIter
20195  num_get<_CharT, _InIter>::
20196  _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,
20197  ios_base::iostate& __err, string& __xtrc) const
20198  {
20199  typedef char_traits<_CharT> __traits_type;
20200  typedef __numpunct_cache<_CharT> __cache_type;
20201  __use_cache<__cache_type> __uc;
20202  const locale& __loc = __io._M_getloc();
20203  const __cache_type* __lc = __uc(__loc);
20204  const _CharT* __lit = __lc->_M_atoms_in;
20205  char_type __c = char_type();
20206 
20207 
20208  bool __testeof = __beg == __end;
20209 
20210 
20211  if (!__testeof)
20212  {
20213  __c = *__beg;
20214  const bool __plus = __c == __lit[__num_base::_S_iplus];
20215  if ((__plus || __c == __lit[__num_base::_S_iminus])
20216  && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20217  && !(__c == __lc->_M_decimal_point))
20218  {
20219  __xtrc += __plus ? '+' : '-';
20220  if (++__beg != __end)
20221  __c = *__beg;
20222  else
20223  __testeof = true;
20224  }
20225  }
20226 
20227 
20228  bool __found_mantissa = false;
20229  int __sep_pos = 0;
20230  while (!__testeof)
20231  {
20232  if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20233  || __c == __lc->_M_decimal_point)
20234  break;
20235  else if (__c == __lit[__num_base::_S_izero])
20236  {
20237  if (!__found_mantissa)
20238  {
20239  __xtrc += '0';
20240  __found_mantissa = true;
20241  }
20242  ++__sep_pos;
20243 
20244  if (++__beg != __end)
20245  __c = *__beg;
20246  else
20247  __testeof = true;
20248  }
20249  else
20250  break;
20251  }
20252 
20253 
20254  bool __found_dec = false;
20255  bool __found_sci = false;
20256  string __found_grouping;
20257  if (__lc->_M_use_grouping)
20258  __found_grouping.reserve(32);
20259  const char_type* __lit_zero = __lit + __num_base::_S_izero;
20260 
20261  if (!__lc->_M_allocated)
20262 
20263  while (!__testeof)
20264  {
20265  const int __digit = _M_find(__lit_zero, 10, __c);
20266  if (__digit != -1)
20267  {
20268  __xtrc += '0' + __digit;
20269  __found_mantissa = true;
20270  }
20271  else if (__c == __lc->_M_decimal_point
20272  && !__found_dec && !__found_sci)
20273  {
20274  __xtrc += '.';
20275  __found_dec = true;
20276  }
20277  else if ((__c == __lit[__num_base::_S_ie]
20278  || __c == __lit[__num_base::_S_iE])
20279  && !__found_sci && __found_mantissa)
20280  {
20281 
20282  __xtrc += 'e';
20283  __found_sci = true;
20284 
20285 
20286  if (++__beg != __end)
20287  {
20288  __c = *__beg;
20289  const bool __plus = __c == __lit[__num_base::_S_iplus];
20290  if (__plus || __c == __lit[__num_base::_S_iminus])
20291  __xtrc += __plus ? '+' : '-';
20292  else
20293  continue;
20294  }
20295  else
20296  {
20297  __testeof = true;
20298  break;
20299  }
20300  }
20301  else
20302  break;
20303 
20304  if (++__beg != __end)
20305  __c = *__beg;
20306  else
20307  __testeof = true;
20308  }
20309  else
20310  while (!__testeof)
20311  {
20312 
20313 
20314  if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20315  {
20316  if (!__found_dec && !__found_sci)
20317  {
20318 
20319 
20320  if (__sep_pos)
20321  {
20322  __found_grouping += static_cast<char>(__sep_pos);
20323  __sep_pos = 0;
20324  }
20325  else
20326  {
20327 
20328 
20329  __xtrc.clear();
20330  break;
20331  }
20332  }
20333  else
20334  break;
20335  }
20336  else if (__c == __lc->_M_decimal_point)
20337  {
20338  if (!__found_dec && !__found_sci)
20339  {
20340 
20341 
20342 
20343  if (__found_grouping.size())
20344  __found_grouping += static_cast<char>(__sep_pos);
20345  __xtrc += '.';
20346  __found_dec = true;
20347  }
20348  else
20349  break;
20350  }
20351  else
20352  {
20353  const char_type* __q =
20354  __traits_type::find(__lit_zero, 10, __c);
20355  if (__q)
20356  {
20357  __xtrc += '0' + (__q - __lit_zero);
20358  __found_mantissa = true;
20359  ++__sep_pos;
20360  }
20361  else if ((__c == __lit[__num_base::_S_ie]
20362  || __c == __lit[__num_base::_S_iE])
20363  && !__found_sci && __found_mantissa)
20364  {
20365 
20366  if (__found_grouping.size() && !__found_dec)
20367  __found_grouping += static_cast<char>(__sep_pos);
20368  __xtrc += 'e';
20369  __found_sci = true;
20370 
20371 
20372  if (++__beg != __end)
20373  {
20374  __c = *__beg;
20375  const bool __plus = __c == __lit[__num_base::_S_iplus];
20376  if ((__plus || __c == __lit[__num_base::_S_iminus])
20377  && !(__lc->_M_use_grouping
20378  && __c == __lc->_M_thousands_sep)
20379  && !(__c == __lc->_M_decimal_point))
20380  __xtrc += __plus ? '+' : '-';
20381  else
20382  continue;
20383  }
20384  else
20385  {
20386  __testeof = true;
20387  break;
20388  }
20389  }
20390  else
20391  break;
20392  }
20393 
20394  if (++__beg != __end)
20395  __c = *__beg;
20396  else
20397  __testeof = true;
20398  }
20399 
20400 
20401 
20402  if (__found_grouping.size())
20403  {
20404 
20405  if (!__found_dec && !__found_sci)
20406  __found_grouping += static_cast<char>(__sep_pos);
20407 
20408  if (!std::__verify_grouping(__lc->_M_grouping,
20409  __lc->_M_grouping_size,
20410  __found_grouping))
20411  __err = ios_base::failbit;
20412  }
20413 
20414  return __beg;
20415  }
20416 
20417  template<typename _CharT, typename _InIter>
20418  template<typename _ValueT>
20419  _InIter
20420  num_get<_CharT, _InIter>::
20421  _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,
20422  ios_base::iostate& __err, _ValueT& __v) const
20423  {
20424  typedef char_traits<_CharT> __traits_type;
20425  using __gnu_cxx::__add_unsigned;
20426  typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
20427  typedef __numpunct_cache<_CharT> __cache_type;
20428  __use_cache<__cache_type> __uc;
20429  const locale& __loc = __io._M_getloc();
20430  const __cache_type* __lc = __uc(__loc);
20431  const _CharT* __lit = __lc->_M_atoms_in;
20432  char_type __c = char_type();
20433 
20434 
20435  const ios_base::fmtflags __basefield = __io.flags()
20436  & ios_base::basefield;
20437  const bool __oct = __basefield == ios_base::oct;
20438  int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);
20439 
20440 
20441  bool __testeof = __beg == __end;
20442 
20443 
20444  bool __negative = false;
20445  if (!__testeof)
20446  {
20447  __c = *__beg;
20448  __negative = __c == __lit[__num_base::_S_iminus];
20449  if ((__negative || __c == __lit[__num_base::_S_iplus])
20450  && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20451  && !(__c == __lc->_M_decimal_point))
20452  {
20453  if (++__beg != __end)
20454  __c = *__beg;
20455  else
20456  __testeof = true;
20457  }
20458  }
20459 
20460 
20461 
20462  bool __found_zero = false;
20463  int __sep_pos = 0;
20464  while (!__testeof)
20465  {
20466  if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20467  || __c == __lc->_M_decimal_point)
20468  break;
20469  else if (__c == __lit[__num_base::_S_izero]
20470  && (!__found_zero || __base == 10))
20471  {
20472  __found_zero = true;
20473  ++__sep_pos;
20474  if (__basefield == 0)
20475  __base = 8;
20476  if (__base == 8)
20477  __sep_pos = 0;
20478  }
20479  else if (__found_zero
20480  && (__c == __lit[__num_base::_S_ix]
20481  || __c == __lit[__num_base::_S_iX]))
20482  {
20483  if (__basefield == 0)
20484  __base = 16;
20485  if (__base == 16)
20486  {
20487  __found_zero = false;
20488  __sep_pos = 0;
20489  }
20490  else
20491  break;
20492  }
20493  else
20494  break;
20495 
20496  if (++__beg != __end)
20497  {
20498  __c = *__beg;
20499  if (!__found_zero)
20500  break;
20501  }
20502  else
20503  __testeof = true;
20504  }
20505 
20506 
20507 
20508  const size_t __len = (__base == 16 ? __num_base::_S_iend
20509  - __num_base::_S_izero : __base);
20510 
20511 
20512  string __found_grouping;
20513  if (__lc->_M_use_grouping)
20514  __found_grouping.reserve(32);
20515  bool __testfail = false;
20516  bool __testoverflow = false;
20517  const __unsigned_type __max =
20518  (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20519  ? -__gnu_cxx::__numeric_traits<_ValueT>::__min
20520  : __gnu_cxx::__numeric_traits<_ValueT>::__max;
20521  const __unsigned_type __smax = __max / __base;
20522  __unsigned_type __result = 0;
20523  int __digit = 0;
20524  const char_type* __lit_zero = __lit + __num_base::_S_izero;
20525 
20526  if (!__lc->_M_allocated)
20527 
20528  while (!__testeof)
20529  {
20530  __digit = _M_find(__lit_zero, __len, __c);
20531  if (__digit == -1)
20532  break;
20533 
20534  if (__result > __smax)
20535  __testoverflow = true;
20536  else
20537  {
20538  __result *= __base;
20539  __testoverflow |= __result > __max - __digit;
20540  __result += __digit;
20541  ++__sep_pos;
20542  }
20543 
20544  if (++__beg != __end)
20545  __c = *__beg;
20546  else
20547  __testeof = true;
20548  }
20549  else
20550  while (!__testeof)
20551  {
20552 
20553 
20554  if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
20555  {
20556 
20557 
20558  if (__sep_pos)
20559  {
20560  __found_grouping += static_cast<char>(__sep_pos);
20561  __sep_pos = 0;
20562  }
20563  else
20564  {
20565  __testfail = true;
20566  break;
20567  }
20568  }
20569  else if (__c == __lc->_M_decimal_point)
20570  break;
20571  else
20572  {
20573  const char_type* __q =
20574  __traits_type::find(__lit_zero, __len, __c);
20575  if (!__q)
20576  break;
20577 
20578  __digit = __q - __lit_zero;
20579  if (__digit > 15)
20580  __digit -= 6;
20581  if (__result > __smax)
20582  __testoverflow = true;
20583  else
20584  {
20585  __result *= __base;
20586  __testoverflow |= __result > __max - __digit;
20587  __result += __digit;
20588  ++__sep_pos;
20589  }
20590  }
20591 
20592  if (++__beg != __end)
20593  __c = *__beg;
20594  else
20595  __testeof = true;
20596  }
20597 
20598 
20599 
20600  if (__found_grouping.size())
20601  {
20602 
20603  __found_grouping += static_cast<char>(__sep_pos);
20604 
20605  if (!std::__verify_grouping(__lc->_M_grouping,
20606  __lc->_M_grouping_size,
20607  __found_grouping))
20608  __err = ios_base::failbit;
20609  }
20610 
20611 
20612 
20613  if ((!__sep_pos && !__found_zero && !__found_grouping.size())
20614  || __testfail)
20615  {
20616  __v = 0;
20617  __err = ios_base::failbit;
20618  }
20619  else if (__testoverflow)
20620  {
20621  if (__negative
20622  && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20623  __v = __gnu_cxx::__numeric_traits<_ValueT>::__min;
20624  else
20625  __v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
20626  __err = ios_base::failbit;
20627  }
20628  else
20629  __v = __negative ? -__result : __result;
20630 
20631  if (__testeof)
20632  __err |= ios_base::eofbit;
20633  return __beg;
20634  }
20635 
20636 
20637 
20638  template<typename _CharT, typename _InIter>
20639  _InIter
20640  num_get<_CharT, _InIter>::
20641  do_get(iter_type __beg, iter_type __end, ios_base& __io,
20642  ios_base::iostate& __err, bool& __v) const
20643  {
20644  if (!(__io.flags() & ios_base::boolalpha))
20645  {
20646 
20647 
20648 
20649  long __l = -1;
20650  __beg = _M_extract_int(__beg, __end, __io, __err, __l);
20651  if (__l == 0 || __l == 1)
20652  __v = bool(__l);
20653  else
20654  {
20655 
20656 
20657  __v = true;
20658  __err = ios_base::failbit;
20659  if (__beg == __end)
20660  __err |= ios_base::eofbit;
20661  }
20662  }
20663  else
20664  {
20665 
20666  typedef __numpunct_cache<_CharT> __cache_type;
20667  __use_cache<__cache_type> __uc;
20668  const locale& __loc = __io._M_getloc();
20669  const __cache_type* __lc = __uc(__loc);
20670 
20671  bool __testf = true;
20672  bool __testt = true;
20673  bool __donef = __lc->_M_falsename_size == 0;
20674  bool __donet = __lc->_M_truename_size == 0;
20675  bool __testeof = false;
20676  size_t __n = 0;
20677  while (!__donef || !__donet)
20678  {
20679  if (__beg == __end)
20680  {
20681  __testeof = true;
20682  break;
20683  }
20684 
20685  const char_type __c = *__beg;
20686 
20687  if (!__donef)
20688  __testf = __c == __lc->_M_falsename[__n];
20689 
20690  if (!__testf && __donet)
20691  break;
20692 
20693  if (!__donet)
20694  __testt = __c == __lc->_M_truename[__n];
20695 
20696  if (!__testt && __donef)
20697  break;
20698 
20699  if (!__testt && !__testf)
20700  break;
20701 
20702  ++__n;
20703  ++__beg;
20704 
20705  __donef = !__testf || __n >= __lc->_M_falsename_size;
20706  __donet = !__testt || __n >= __lc->_M_truename_size;
20707  }
20708  if (__testf && __n == __lc->_M_falsename_size && __n)
20709  {
20710  __v = false;
20711  if (__testt && __n == __lc->_M_truename_size)
20712  __err = ios_base::failbit;
20713  else
20714  __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
20715  }
20716  else if (__testt && __n == __lc->_M_truename_size && __n)
20717  {
20718  __v = true;
20719  __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
20720  }
20721  else
20722  {
20723 
20724 
20725  __v = false;
20726  __err = ios_base::failbit;
20727  if (__testeof)
20728  __err |= ios_base::eofbit;
20729  }
20730  }
20731  return __beg;
20732  }
20733 
20734  template<typename _CharT, typename _InIter>
20735  _InIter
20736  num_get<_CharT, _InIter>::
20737  do_get(iter_type __beg, iter_type __end, ios_base& __io,
20738  ios_base::iostate& __err, float& __v) const
20739  {
20740  string __xtrc;
20741  __xtrc.reserve(32);
20742  __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20743  std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20744  if (__beg == __end)
20745  __err |= ios_base::eofbit;
20746  return __beg;
20747  }
20748 
20749  template<typename _CharT, typename _InIter>
20750  _InIter
20751  num_get<_CharT, _InIter>::
20752  do_get(iter_type __beg, iter_type __end, ios_base& __io,
20753  ios_base::iostate& __err, double& __v) const
20754  {
20755  string __xtrc;
20756  __xtrc.reserve(32);
20757  __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20758  std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20759  if (__beg == __end)
20760  __err |= ios_base::eofbit;
20761  return __beg;
20762  }
20763 # 730 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20764  template<typename _CharT, typename _InIter>
20765  _InIter
20766  num_get<_CharT, _InIter>::
20767  do_get(iter_type __beg, iter_type __end, ios_base& __io,
20768  ios_base::iostate& __err, long double& __v) const
20769  {
20770  string __xtrc;
20771  __xtrc.reserve(32);
20772  __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
20773  std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
20774  if (__beg == __end)
20775  __err |= ios_base::eofbit;
20776  return __beg;
20777  }
20778 
20779  template<typename _CharT, typename _InIter>
20780  _InIter
20781  num_get<_CharT, _InIter>::
20782  do_get(iter_type __beg, iter_type __end, ios_base& __io,
20783  ios_base::iostate& __err, void*& __v) const
20784  {
20785 
20786  typedef ios_base::fmtflags fmtflags;
20787  const fmtflags __fmt = __io.flags();
20788  __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex);
20789 
20790  typedef __gnu_cxx::__conditional_type<(sizeof(void*)
20791  <= sizeof(unsigned long)),
20792  unsigned long, unsigned long long>::__type _UIntPtrType;
20793 
20794  _UIntPtrType __ul;
20795  __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
20796 
20797 
20798  __io.flags(__fmt);
20799 
20800  __v = reinterpret_cast<void*>(__ul);
20801  return __beg;
20802  }
20803 
20804 
20805 
20806  template<typename _CharT, typename _OutIter>
20807  void
20808  num_put<_CharT, _OutIter>::
20809  _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
20810  _CharT* __new, const _CharT* __cs, int& __len) const
20811  {
20812 
20813 
20814  __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new,
20815  __cs, __w, __len);
20816  __len = static_cast<int>(__w);
20817  }
20818 
20819 
20820 
20821  template<typename _CharT, typename _ValueT>
20822  int
20823  __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit,
20824  ios_base::fmtflags __flags, bool __dec)
20825  {
20826  _CharT* __buf = __bufend;
20827  if (__builtin_expect(__dec, true))
20828  {
20829 
20830  do
20831  {
20832  *--__buf = __lit[(__v % 10) + __num_base::_S_odigits];
20833  __v /= 10;
20834  }
20835  while (__v != 0);
20836  }
20837  else if ((__flags & ios_base::basefield) == ios_base::oct)
20838  {
20839 
20840  do
20841  {
20842  *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];
20843  __v >>= 3;
20844  }
20845  while (__v != 0);
20846  }
20847  else
20848  {
20849 
20850  const bool __uppercase = __flags & ios_base::uppercase;
20851  const int __case_offset = __uppercase ? __num_base::_S_oudigits
20852  : __num_base::_S_odigits;
20853  do
20854  {
20855  *--__buf = __lit[(__v & 0xf) + __case_offset];
20856  __v >>= 4;
20857  }
20858  while (__v != 0);
20859  }
20860  return __bufend - __buf;
20861  }
20862 
20863 
20864 
20865  template<typename _CharT, typename _OutIter>
20866  void
20867  num_put<_CharT, _OutIter>::
20868  _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep,
20869  ios_base&, _CharT* __new, _CharT* __cs, int& __len) const
20870  {
20871  _CharT* __p = std::__add_grouping(__new, __sep, __grouping,
20872  __grouping_size, __cs, __cs + __len);
20873  __len = __p - __new;
20874  }
20875 
20876  template<typename _CharT, typename _OutIter>
20877  template<typename _ValueT>
20878  _OutIter
20879  num_put<_CharT, _OutIter>::
20880  _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,
20881  _ValueT __v) const
20882  {
20883  using __gnu_cxx::__add_unsigned;
20884  typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
20885  typedef __numpunct_cache<_CharT> __cache_type;
20886  __use_cache<__cache_type> __uc;
20887  const locale& __loc = __io._M_getloc();
20888  const __cache_type* __lc = __uc(__loc);
20889  const _CharT* __lit = __lc->_M_atoms_out;
20890  const ios_base::fmtflags __flags = __io.flags();
20891 
20892 
20893  const int __ilen = 5 * sizeof(_ValueT);
20894  _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
20895  * __ilen));
20896 
20897 
20898 
20899  const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
20900  const bool __dec = (__basefield != ios_base::oct
20901  && __basefield != ios_base::hex);
20902  const __unsigned_type __u = ((__v > 0 || !__dec)
20903  ? __unsigned_type(__v)
20904  : -__unsigned_type(__v));
20905  int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec);
20906  __cs += __ilen - __len;
20907 
20908 
20909  if (__lc->_M_use_grouping)
20910  {
20911 
20912 
20913  _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
20914  * (__len + 1)
20915  * 2));
20916  _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,
20917  __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);
20918  __cs = __cs2 + 2;
20919  }
20920 
20921 
20922  if (__builtin_expect(__dec, true))
20923  {
20924 
20925  if (__v >= 0)
20926  {
20927  if (bool(__flags & ios_base::showpos)
20928  && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
20929  *--__cs = __lit[__num_base::_S_oplus], ++__len;
20930  }
20931  else
20932  *--__cs = __lit[__num_base::_S_ominus], ++__len;
20933  }
20934  else if (bool(__flags & ios_base::showbase) && __v)
20935  {
20936  if (__basefield == ios_base::oct)
20937  *--__cs = __lit[__num_base::_S_odigits], ++__len;
20938  else
20939  {
20940 
20941  const bool __uppercase = __flags & ios_base::uppercase;
20942  *--__cs = __lit[__num_base::_S_ox + __uppercase];
20943 
20944  *--__cs = __lit[__num_base::_S_odigits];
20945  __len += 2;
20946  }
20947  }
20948 
20949 
20950  const streamsize __w = __io.width();
20951  if (__w > static_cast<streamsize>(__len))
20952  {
20953  _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
20954  * __w));
20955  _M_pad(__fill, __w, __io, __cs3, __cs, __len);
20956  __cs = __cs3;
20957  }
20958  __io.width(0);
20959 
20960 
20961 
20962  return std::__write(__s, __cs, __len);
20963  }
20964 
20965  template<typename _CharT, typename _OutIter>
20966  void
20967  num_put<_CharT, _OutIter>::
20968  _M_group_float(const char* __grouping, size_t __grouping_size,
20969  _CharT __sep, const _CharT* __p, _CharT* __new,
20970  _CharT* __cs, int& __len) const
20971  {
20972 
20973 
20974 
20975  const int __declen = __p ? __p - __cs : __len;
20976  _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,
20977  __grouping_size,
20978  __cs, __cs + __declen);
20979 
20980 
20981  int __newlen = __p2 - __new;
20982  if (__p)
20983  {
20984  char_traits<_CharT>::copy(__p2, __p, __len - __declen);
20985  __newlen += __len - __declen;
20986  }
20987  __len = __newlen;
20988  }
20989 # 966 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
20990  template<typename _CharT, typename _OutIter>
20991  template<typename _ValueT>
20992  _OutIter
20993  num_put<_CharT, _OutIter>::
20994  _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
20995  _ValueT __v) const
20996  {
20997  typedef __numpunct_cache<_CharT> __cache_type;
20998  __use_cache<__cache_type> __uc;
20999  const locale& __loc = __io._M_getloc();
21000  const __cache_type* __lc = __uc(__loc);
21001 
21002 
21003  const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision();
21004 
21005  const int __max_digits =
21006  __gnu_cxx::__numeric_traits<_ValueT>::__digits10;
21007 
21008 
21009  int __len;
21010 
21011  char __fbuf[16];
21012  __num_base::_S_format_float(__io, __fbuf, __mod);
21013 
21014 
21015 
21016 
21017  int __cs_size = __max_digits * 3;
21018  char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
21019  __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
21020  __fbuf, __prec, __v);
21021 
21022 
21023  if (__len >= __cs_size)
21024  {
21025  __cs_size = __len + 1;
21026  __cs = static_cast<char*>(__builtin_alloca(__cs_size));
21027  __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
21028  __fbuf, __prec, __v);
21029  }
21030 # 1027 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21031  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
21032 
21033  _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
21034  * __len));
21035  __ctype.widen(__cs, __cs + __len, __ws);
21036 
21037 
21038  _CharT* __wp = 0;
21039  const char* __p = char_traits<char>::find(__cs, __len, '.');
21040  if (__p)
21041  {
21042  __wp = __ws + (__p - __cs);
21043  *__wp = __lc->_M_decimal_point;
21044  }
21045 
21046 
21047 
21048 
21049  if (__lc->_M_use_grouping
21050  && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9'
21051  && __cs[1] >= '0' && __cs[2] >= '0')))
21052  {
21053 
21054 
21055  _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
21056  * __len * 2));
21057 
21058  streamsize __off = 0;
21059  if (__cs[0] == '-' || __cs[0] == '+')
21060  {
21061  __off = 1;
21062  __ws2[0] = __ws[0];
21063  __len -= 1;
21064  }
21065 
21066  _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,
21067  __lc->_M_thousands_sep, __wp, __ws2 + __off,
21068  __ws + __off, __len);
21069  __len += __off;
21070 
21071  __ws = __ws2;
21072  }
21073 
21074 
21075  const streamsize __w = __io.width();
21076  if (__w > static_cast<streamsize>(__len))
21077  {
21078  _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
21079  * __w));
21080  _M_pad(__fill, __w, __io, __ws3, __ws, __len);
21081  __ws = __ws3;
21082  }
21083  __io.width(0);
21084 
21085 
21086 
21087  return std::__write(__s, __ws, __len);
21088  }
21089 
21090  template<typename _CharT, typename _OutIter>
21091  _OutIter
21092  num_put<_CharT, _OutIter>::
21093  do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
21094  {
21095  const ios_base::fmtflags __flags = __io.flags();
21096  if ((__flags & ios_base::boolalpha) == 0)
21097  {
21098  const long __l = __v;
21099  __s = _M_insert_int(__s, __io, __fill, __l);
21100  }
21101  else
21102  {
21103  typedef __numpunct_cache<_CharT> __cache_type;
21104  __use_cache<__cache_type> __uc;
21105  const locale& __loc = __io._M_getloc();
21106  const __cache_type* __lc = __uc(__loc);
21107 
21108  const _CharT* __name = __v ? __lc->_M_truename
21109  : __lc->_M_falsename;
21110  int __len = __v ? __lc->_M_truename_size
21111  : __lc->_M_falsename_size;
21112 
21113  const streamsize __w = __io.width();
21114  if (__w > static_cast<streamsize>(__len))
21115  {
21116  const streamsize __plen = __w - __len;
21117  _CharT* __ps
21118  = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
21119  * __plen));
21120 
21121  char_traits<_CharT>::assign(__ps, __plen, __fill);
21122  __io.width(0);
21123 
21124  if ((__flags & ios_base::adjustfield) == ios_base::left)
21125  {
21126  __s = std::__write(__s, __name, __len);
21127  __s = std::__write(__s, __ps, __plen);
21128  }
21129  else
21130  {
21131  __s = std::__write(__s, __ps, __plen);
21132  __s = std::__write(__s, __name, __len);
21133  }
21134  return __s;
21135  }
21136  __io.width(0);
21137  __s = std::__write(__s, __name, __len);
21138  }
21139  return __s;
21140  }
21141 
21142  template<typename _CharT, typename _OutIter>
21143  _OutIter
21144  num_put<_CharT, _OutIter>::
21145  do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
21146  { return _M_insert_float(__s, __io, __fill, char(), __v); }
21147 # 1152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21148  template<typename _CharT, typename _OutIter>
21149  _OutIter
21150  num_put<_CharT, _OutIter>::
21151  do_put(iter_type __s, ios_base& __io, char_type __fill,
21152  long double __v) const
21153  { return _M_insert_float(__s, __io, __fill, 'L', __v); }
21154 
21155  template<typename _CharT, typename _OutIter>
21156  _OutIter
21157  num_put<_CharT, _OutIter>::
21158  do_put(iter_type __s, ios_base& __io, char_type __fill,
21159  const void* __v) const
21160  {
21161  const ios_base::fmtflags __flags = __io.flags();
21162  const ios_base::fmtflags __fmt = ~(ios_base::basefield
21163  | ios_base::uppercase);
21164  __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));
21165 
21166  typedef __gnu_cxx::__conditional_type<(sizeof(const void*)
21167  <= sizeof(unsigned long)),
21168  unsigned long, unsigned long long>::__type _UIntPtrType;
21169 
21170  __s = _M_insert_int(__s, __io, __fill,
21171  reinterpret_cast<_UIntPtrType>(__v));
21172  __io.flags(__flags);
21173  return __s;
21174  }
21175 # 1189 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.tcc" 3
21176  template<typename _CharT, typename _Traits>
21177  void
21178  __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
21179  _CharT* __news, const _CharT* __olds,
21180  streamsize __newlen, streamsize __oldlen)
21181  {
21182  const size_t __plen = static_cast<size_t>(__newlen - __oldlen);
21183  const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
21184 
21185 
21186  if (__adjust == ios_base::left)
21187  {
21188  _Traits::copy(__news, __olds, __oldlen);
21189  _Traits::assign(__news + __oldlen, __plen, __fill);
21190  return;
21191  }
21192 
21193  size_t __mod = 0;
21194  if (__adjust == ios_base::internal)
21195  {
21196 
21197 
21198 
21199  const locale& __loc = __io._M_getloc();
21200  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
21201 
21202  if (__ctype.widen('-') == __olds[0]
21203  || __ctype.widen('+') == __olds[0])
21204  {
21205  __news[0] = __olds[0];
21206  __mod = 1;
21207  ++__news;
21208  }
21209  else if (__ctype.widen('0') == __olds[0]
21210  && __oldlen > 1
21211  && (__ctype.widen('x') == __olds[1]
21212  || __ctype.widen('X') == __olds[1]))
21213  {
21214  __news[0] = __olds[0];
21215  __news[1] = __olds[1];
21216  __mod = 2;
21217  __news += 2;
21218  }
21219 
21220  }
21221  _Traits::assign(__news, __plen, __fill);
21222  _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod);
21223  }
21224 
21225  template<typename _CharT>
21226  _CharT*
21227  __add_grouping(_CharT* __s, _CharT __sep,
21228  const char* __gbeg, size_t __gsize,
21229  const _CharT* __first, const _CharT* __last)
21230  {
21231  size_t __idx = 0;
21232  size_t __ctr = 0;
21233 
21234  while (__last - __first > __gbeg[__idx]
21235  && static_cast<signed char>(__gbeg[__idx]) > 0
21236  && __gbeg[__idx] != __gnu_cxx::__numeric_traits<char>::__max)
21237  {
21238  __last -= __gbeg[__idx];
21239  __idx < __gsize - 1 ? ++__idx : ++__ctr;
21240  }
21241 
21242  while (__first != __last)
21243  *__s++ = *__first++;
21244 
21245  while (__ctr--)
21246  {
21247  *__s++ = __sep;
21248  for (char __i = __gbeg[__idx]; __i > 0; --__i)
21249  *__s++ = *__first++;
21250  }
21251 
21252  while (__idx--)
21253  {
21254  *__s++ = __sep;
21255  for (char __i = __gbeg[__idx]; __i > 0; --__i)
21256  *__s++ = *__first++;
21257  }
21258 
21259  return __s;
21260  }
21261 
21262 
21263 
21264 
21265  extern template class numpunct<char>;
21266  extern template class numpunct_byname<char>;
21267  extern template class num_get<char>;
21268  extern template class num_put<char>;
21269  extern template class ctype_byname<char>;
21270 
21271  extern template
21272  const ctype<char>&
21273  use_facet<ctype<char> >(const locale&);
21274 
21275  extern template
21276  const numpunct<char>&
21277  use_facet<numpunct<char> >(const locale&);
21278 
21279  extern template
21280  const num_put<char>&
21281  use_facet<num_put<char> >(const locale&);
21282 
21283  extern template
21284  const num_get<char>&
21285  use_facet<num_get<char> >(const locale&);
21286 
21287  extern template
21288  bool
21289  has_facet<ctype<char> >(const locale&);
21290 
21291  extern template
21292  bool
21293  has_facet<numpunct<char> >(const locale&);
21294 
21295  extern template
21296  bool
21297  has_facet<num_put<char> >(const locale&);
21298 
21299  extern template
21300  bool
21301  has_facet<num_get<char> >(const locale&);
21302 
21303 
21304  extern template class numpunct<wchar_t>;
21305  extern template class numpunct_byname<wchar_t>;
21306  extern template class num_get<wchar_t>;
21307  extern template class num_put<wchar_t>;
21308  extern template class ctype_byname<wchar_t>;
21309 
21310  extern template
21311  const ctype<wchar_t>&
21312  use_facet<ctype<wchar_t> >(const locale&);
21313 
21314  extern template
21315  const numpunct<wchar_t>&
21316  use_facet<numpunct<wchar_t> >(const locale&);
21317 
21318  extern template
21319  const num_put<wchar_t>&
21320  use_facet<num_put<wchar_t> >(const locale&);
21321 
21322  extern template
21323  const num_get<wchar_t>&
21324  use_facet<num_get<wchar_t> >(const locale&);
21325 
21326  extern template
21327  bool
21328  has_facet<ctype<wchar_t> >(const locale&);
21329 
21330  extern template
21331  bool
21332  has_facet<numpunct<wchar_t> >(const locale&);
21333 
21334  extern template
21335  bool
21336  has_facet<num_put<wchar_t> >(const locale&);
21337 
21338  extern template
21339  bool
21340  has_facet<num_get<wchar_t> >(const locale&);
21341 
21342 
21343 
21344 
21345 }
21346 # 2609 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/locale_facets.h" 2 3
21347 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 2 3
21348 
21349 
21350 namespace std __attribute__ ((__visibility__ ("default")))
21351 {
21352 
21353 
21354  template<typename _Facet>
21355  inline const _Facet&
21356  __check_facet(const _Facet* __f)
21357  {
21358  if (!__f)
21359  __throw_bad_cast();
21360  return *__f;
21361  }
21362 # 65 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21363  template<typename _CharT, typename _Traits>
21364  class basic_ios : public ios_base
21365  {
21366  public:
21367 
21368 
21369 
21370 
21371 
21372 
21373  typedef _CharT char_type;
21374  typedef typename _Traits::int_type int_type;
21375  typedef typename _Traits::pos_type pos_type;
21376  typedef typename _Traits::off_type off_type;
21377  typedef _Traits traits_type;
21378 
21379 
21380 
21381 
21382 
21383 
21384  typedef ctype<_CharT> __ctype_type;
21385  typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
21386  __num_put_type;
21387  typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
21388  __num_get_type;
21389 
21390 
21391 
21392  protected:
21393  basic_ostream<_CharT, _Traits>* _M_tie;
21394  mutable char_type _M_fill;
21395  mutable bool _M_fill_init;
21396  basic_streambuf<_CharT, _Traits>* _M_streambuf;
21397 
21398 
21399  const __ctype_type* _M_ctype;
21400 
21401  const __num_put_type* _M_num_put;
21402 
21403  const __num_get_type* _M_num_get;
21404 
21405  public:
21406 
21407 
21408 
21409 
21410 
21411 
21412 
21413  operator void*() const
21414  { return this->fail() ? 0 : const_cast<basic_ios*>(this); }
21415 
21416  bool
21417  operator!() const
21418  { return this->fail(); }
21419 # 130 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21420  iostate
21421  rdstate() const
21422  { return _M_streambuf_state; }
21423 # 141 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21424  void
21425  clear(iostate __state = goodbit);
21426 
21427 
21428 
21429 
21430 
21431 
21432 
21433  void
21434  setstate(iostate __state)
21435  { this->clear(this->rdstate() | __state); }
21436 
21437 
21438 
21439 
21440  void
21441  _M_setstate(iostate __state)
21442  {
21443 
21444 
21445  _M_streambuf_state |= __state;
21446  if (this->exceptions() & __state)
21447  throw;
21448  }
21449 
21450 
21451 
21452 
21453 
21454 
21455 
21456  bool
21457  good() const
21458  { return this->rdstate() == 0; }
21459 
21460 
21461 
21462 
21463 
21464 
21465 
21466  bool
21467  eof() const
21468  { return (this->rdstate() & eofbit) != 0; }
21469 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21470  bool
21471  fail() const
21472  { return (this->rdstate() & (badbit | failbit)) != 0; }
21473 
21474 
21475 
21476 
21477 
21478 
21479 
21480  bool
21481  bad() const
21482  { return (this->rdstate() & badbit) != 0; }
21483 # 215 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21484  iostate
21485  exceptions() const
21486  { return _M_exception; }
21487 # 250 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21488  void
21489  exceptions(iostate __except)
21490  {
21491  _M_exception = __except;
21492  this->clear(_M_streambuf_state);
21493  }
21494 
21495 
21496 
21497 
21498 
21499 
21500 
21501  explicit
21502  basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
21503  : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
21504  _M_ctype(0), _M_num_put(0), _M_num_get(0)
21505  { this->init(__sb); }
21506 
21507 
21508 
21509 
21510 
21511 
21512 
21513  virtual
21514  ~basic_ios() { }
21515 # 288 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21516  basic_ostream<_CharT, _Traits>*
21517  tie() const
21518  { return _M_tie; }
21519 # 300 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21520  basic_ostream<_CharT, _Traits>*
21521  tie(basic_ostream<_CharT, _Traits>* __tiestr)
21522  {
21523  basic_ostream<_CharT, _Traits>* __old = _M_tie;
21524  _M_tie = __tiestr;
21525  return __old;
21526  }
21527 
21528 
21529 
21530 
21531 
21532 
21533 
21534  basic_streambuf<_CharT, _Traits>*
21535  rdbuf() const
21536  { return _M_streambuf; }
21537 # 340 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21538  basic_streambuf<_CharT, _Traits>*
21539  rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
21540 # 354 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21541  basic_ios&
21542  copyfmt(const basic_ios& __rhs);
21543 
21544 
21545 
21546 
21547 
21548 
21549 
21550  char_type
21551  fill() const
21552  {
21553  if (!_M_fill_init)
21554  {
21555  _M_fill = this->widen(' ');
21556  _M_fill_init = true;
21557  }
21558  return _M_fill;
21559  }
21560 # 383 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21561  char_type
21562  fill(char_type __ch)
21563  {
21564  char_type __old = this->fill();
21565  _M_fill = __ch;
21566  return __old;
21567  }
21568 # 403 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21569  locale
21570  imbue(const locale& __loc);
21571 # 423 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21572  char
21573  narrow(char_type __c, char __dfault) const
21574  { return __check_facet(_M_ctype).narrow(__c, __dfault); }
21575 # 442 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 3
21576  char_type
21577  widen(char __c) const
21578  { return __check_facet(_M_ctype).widen(__c); }
21579 
21580  protected:
21581 
21582 
21583 
21584 
21585 
21586 
21587 
21588  basic_ios()
21589  : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
21590  _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
21591  { }
21592 
21593 
21594 
21595 
21596 
21597 
21598 
21599  void
21600  init(basic_streambuf<_CharT, _Traits>* __sb);
21601 
21602  void
21603  _M_cache_locale(const locale& __loc);
21604  };
21605 
21606 
21607 }
21608 
21609 
21610 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 1 3
21611 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 3
21612 
21613 namespace std __attribute__ ((__visibility__ ("default")))
21614 {
21615 
21616 
21617  template<typename _CharT, typename _Traits>
21618  void
21619  basic_ios<_CharT, _Traits>::clear(iostate __state)
21620  {
21621  if (this->rdbuf())
21622  _M_streambuf_state = __state;
21623  else
21624  _M_streambuf_state = __state | badbit;
21625  if (this->exceptions() & this->rdstate())
21626  __throw_ios_failure(("basic_ios::clear"));
21627  }
21628 
21629  template<typename _CharT, typename _Traits>
21630  basic_streambuf<_CharT, _Traits>*
21631  basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb)
21632  {
21633  basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;
21634  _M_streambuf = __sb;
21635  this->clear();
21636  return __old;
21637  }
21638 
21639  template<typename _CharT, typename _Traits>
21640  basic_ios<_CharT, _Traits>&
21641  basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
21642  {
21643 
21644 
21645  if (this != &__rhs)
21646  {
21647 
21648 
21649 
21650 
21651  _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
21652  _M_local_word : new _Words[__rhs._M_word_size];
21653 
21654 
21655  _Callback_list* __cb = __rhs._M_callbacks;
21656  if (__cb)
21657  __cb->_M_add_reference();
21658  _M_call_callbacks(erase_event);
21659  if (_M_word != _M_local_word)
21660  {
21661  delete [] _M_word;
21662  _M_word = 0;
21663  }
21664  _M_dispose_callbacks();
21665 
21666 
21667  _M_callbacks = __cb;
21668  for (int __i = 0; __i < __rhs._M_word_size; ++__i)
21669  __words[__i] = __rhs._M_word[__i];
21670  _M_word = __words;
21671  _M_word_size = __rhs._M_word_size;
21672 
21673  this->flags(__rhs.flags());
21674  this->width(__rhs.width());
21675  this->precision(__rhs.precision());
21676  this->tie(__rhs.tie());
21677  this->fill(__rhs.fill());
21678  _M_ios_locale = __rhs.getloc();
21679  _M_cache_locale(_M_ios_locale);
21680 
21681  _M_call_callbacks(copyfmt_event);
21682 
21683 
21684  this->exceptions(__rhs.exceptions());
21685  }
21686  return *this;
21687  }
21688 
21689 
21690  template<typename _CharT, typename _Traits>
21691  locale
21692  basic_ios<_CharT, _Traits>::imbue(const locale& __loc)
21693  {
21694  locale __old(this->getloc());
21695  ios_base::imbue(__loc);
21696  _M_cache_locale(__loc);
21697  if (this->rdbuf() != 0)
21698  this->rdbuf()->pubimbue(__loc);
21699  return __old;
21700  }
21701 
21702  template<typename _CharT, typename _Traits>
21703  void
21704  basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb)
21705  {
21706 
21707  ios_base::_M_init();
21708 
21709 
21710  _M_cache_locale(_M_ios_locale);
21711 # 146 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.tcc" 3
21712  _M_fill = _CharT();
21713  _M_fill_init = false;
21714 
21715  _M_tie = 0;
21716  _M_exception = goodbit;
21717  _M_streambuf = __sb;
21718  _M_streambuf_state = __sb ? goodbit : badbit;
21719  }
21720 
21721  template<typename _CharT, typename _Traits>
21722  void
21723  basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
21724  {
21725  if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
21726  _M_ctype = &use_facet<__ctype_type>(__loc);
21727  else
21728  _M_ctype = 0;
21729 
21730  if (__builtin_expect(has_facet<__num_put_type>(__loc), true))
21731  _M_num_put = &use_facet<__num_put_type>(__loc);
21732  else
21733  _M_num_put = 0;
21734 
21735  if (__builtin_expect(has_facet<__num_get_type>(__loc), true))
21736  _M_num_get = &use_facet<__num_get_type>(__loc);
21737  else
21738  _M_num_get = 0;
21739  }
21740 
21741 
21742 
21743 
21744  extern template class basic_ios<char>;
21745 
21746 
21747  extern template class basic_ios<wchar_t>;
21748 
21749 
21750 
21751 
21752 }
21753 # 476 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/basic_ios.h" 2 3
21754 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ios" 2 3
21755 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
21756 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 1 3
21757 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21758 
21759 
21760 
21761 
21762 namespace std __attribute__ ((__visibility__ ("default")))
21763 {
21764 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21765  template<typename _CharT, typename _Traits>
21766  class basic_ostream : virtual public basic_ios<_CharT, _Traits>
21767  {
21768  public:
21769 
21770  typedef _CharT char_type;
21771  typedef typename _Traits::int_type int_type;
21772  typedef typename _Traits::pos_type pos_type;
21773  typedef typename _Traits::off_type off_type;
21774  typedef _Traits traits_type;
21775 
21776 
21777  typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
21778  typedef basic_ios<_CharT, _Traits> __ios_type;
21779  typedef basic_ostream<_CharT, _Traits> __ostream_type;
21780  typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
21781  __num_put_type;
21782  typedef ctype<_CharT> __ctype_type;
21783 # 83 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21784  explicit
21785  basic_ostream(__streambuf_type* __sb)
21786  { this->init(__sb); }
21787 
21788 
21789 
21790 
21791 
21792 
21793  virtual
21794  ~basic_ostream() { }
21795 
21796 
21797  class sentry;
21798  friend class sentry;
21799 # 107 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21800  __ostream_type&
21801  operator<<(__ostream_type& (*__pf)(__ostream_type&))
21802  {
21803 
21804 
21805 
21806  return __pf(*this);
21807  }
21808 
21809  __ostream_type&
21810  operator<<(__ios_type& (*__pf)(__ios_type&))
21811  {
21812 
21813 
21814 
21815  __pf(*this);
21816  return *this;
21817  }
21818 
21819  __ostream_type&
21820  operator<<(ios_base& (*__pf) (ios_base&))
21821  {
21822 
21823 
21824 
21825  __pf(*this);
21826  return *this;
21827  }
21828 # 165 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21829  __ostream_type&
21830  operator<<(long __n)
21831  { return _M_insert(__n); }
21832 
21833  __ostream_type&
21834  operator<<(unsigned long __n)
21835  { return _M_insert(__n); }
21836 
21837  __ostream_type&
21838  operator<<(bool __n)
21839  { return _M_insert(__n); }
21840 
21841  __ostream_type&
21842  operator<<(short __n);
21843 
21844  __ostream_type&
21845  operator<<(unsigned short __n)
21846  {
21847 
21848 
21849  return _M_insert(static_cast<unsigned long>(__n));
21850  }
21851 
21852  __ostream_type&
21853  operator<<(int __n);
21854 
21855  __ostream_type&
21856  operator<<(unsigned int __n)
21857  {
21858 
21859 
21860  return _M_insert(static_cast<unsigned long>(__n));
21861  }
21862 
21863 
21864  __ostream_type&
21865  operator<<(long long __n)
21866  { return _M_insert(__n); }
21867 
21868  __ostream_type&
21869  operator<<(unsigned long long __n)
21870  { return _M_insert(__n); }
21871 # 219 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21872  __ostream_type&
21873  operator<<(double __f)
21874  { return _M_insert(__f); }
21875 
21876  __ostream_type&
21877  operator<<(float __f)
21878  {
21879 
21880 
21881  return _M_insert(static_cast<double>(__f));
21882  }
21883 
21884  __ostream_type&
21885  operator<<(long double __f)
21886  { return _M_insert(__f); }
21887 # 244 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21888  __ostream_type&
21889  operator<<(const void* __p)
21890  { return _M_insert(__p); }
21891 # 269 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21892  __ostream_type&
21893  operator<<(__streambuf_type* __sb);
21894 # 302 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21895  __ostream_type&
21896  put(char_type __c);
21897 
21898 
21899 
21900 
21901 
21902 
21903  void
21904  _M_write(const char_type* __s, streamsize __n)
21905  {
21906  const streamsize __put = this->rdbuf()->sputn(__s, __n);
21907  if (__put != __n)
21908  this->setstate(ios_base::badbit);
21909  }
21910 # 334 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21911  __ostream_type&
21912  write(const char_type* __s, streamsize __n);
21913 # 347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21914  __ostream_type&
21915  flush();
21916 # 357 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21917  pos_type
21918  tellp();
21919 # 368 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21920  __ostream_type&
21921  seekp(pos_type);
21922 # 380 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21923  __ostream_type&
21924  seekp(off_type, ios_base::seekdir);
21925 
21926  protected:
21927  basic_ostream()
21928  { this->init(0); }
21929 
21930  template<typename _ValueT>
21931  __ostream_type&
21932  _M_insert(_ValueT __v);
21933  };
21934 # 399 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21935  template <typename _CharT, typename _Traits>
21936  class basic_ostream<_CharT, _Traits>::sentry
21937  {
21938 
21939  bool _M_ok;
21940  basic_ostream<_CharT, _Traits>& _M_os;
21941 
21942  public:
21943 # 418 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21944  explicit
21945  sentry(basic_ostream<_CharT, _Traits>& __os);
21946 # 428 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21947  ~sentry()
21948  {
21949 
21950  if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception())
21951  {
21952 
21953  if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
21954  _M_os.setstate(ios_base::badbit);
21955  }
21956  }
21957 # 447 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21958  explicit
21959 
21960  operator bool() const
21961  { return _M_ok; }
21962  };
21963 # 469 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21964  template<typename _CharT, typename _Traits>
21965  inline basic_ostream<_CharT, _Traits>&
21966  operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
21967  { return __ostream_insert(__out, &__c, 1); }
21968 
21969  template<typename _CharT, typename _Traits>
21970  inline basic_ostream<_CharT, _Traits>&
21971  operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
21972  { return (__out << __out.widen(__c)); }
21973 
21974 
21975  template <class _Traits>
21976  inline basic_ostream<char, _Traits>&
21977  operator<<(basic_ostream<char, _Traits>& __out, char __c)
21978  { return __ostream_insert(__out, &__c, 1); }
21979 
21980 
21981  template<class _Traits>
21982  inline basic_ostream<char, _Traits>&
21983  operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
21984  { return (__out << static_cast<char>(__c)); }
21985 
21986  template<class _Traits>
21987  inline basic_ostream<char, _Traits>&
21988  operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
21989  { return (__out << static_cast<char>(__c)); }
21990 # 511 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
21991  template<typename _CharT, typename _Traits>
21992  inline basic_ostream<_CharT, _Traits>&
21993  operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
21994  {
21995  if (!__s)
21996  __out.setstate(ios_base::badbit);
21997  else
21998  __ostream_insert(__out, __s,
21999  static_cast<streamsize>(_Traits::length(__s)));
22000  return __out;
22001  }
22002 
22003  template<typename _CharT, typename _Traits>
22004  basic_ostream<_CharT, _Traits> &
22005  operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);
22006 
22007 
22008  template<class _Traits>
22009  inline basic_ostream<char, _Traits>&
22010  operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
22011  {
22012  if (!__s)
22013  __out.setstate(ios_base::badbit);
22014  else
22015  __ostream_insert(__out, __s,
22016  static_cast<streamsize>(_Traits::length(__s)));
22017  return __out;
22018  }
22019 
22020 
22021  template<class _Traits>
22022  inline basic_ostream<char, _Traits>&
22023  operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
22024  { return (__out << reinterpret_cast<const char*>(__s)); }
22025 
22026  template<class _Traits>
22027  inline basic_ostream<char, _Traits> &
22028  operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
22029  { return (__out << reinterpret_cast<const char*>(__s)); }
22030 # 562 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22031  template<typename _CharT, typename _Traits>
22032  inline basic_ostream<_CharT, _Traits>&
22033  endl(basic_ostream<_CharT, _Traits>& __os)
22034  { return flush(__os.put(__os.widen('\n'))); }
22035 # 574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22036  template<typename _CharT, typename _Traits>
22037  inline basic_ostream<_CharT, _Traits>&
22038  ends(basic_ostream<_CharT, _Traits>& __os)
22039  { return __os.put(_CharT()); }
22040 
22041 
22042 
22043 
22044 
22045 
22046  template<typename _CharT, typename _Traits>
22047  inline basic_ostream<_CharT, _Traits>&
22048  flush(basic_ostream<_CharT, _Traits>& __os)
22049  { return __os.flush(); }
22050 # 600 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 3
22051  template<typename _CharT, typename _Traits, typename _Tp>
22052  inline basic_ostream<_CharT, _Traits>&
22053  operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
22054  { return (__os << __x); }
22055 
22056 
22057 
22058 }
22059 
22060 
22061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream.tcc" 1 3
22062 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/ostream.tcc" 3
22063 
22064 
22065 
22066 namespace std __attribute__ ((__visibility__ ("default")))
22067 {
22068 
22069 
22070  template<typename _CharT, typename _Traits>
22071  basic_ostream<_CharT, _Traits>::sentry::
22072  sentry(basic_ostream<_CharT, _Traits>& __os)
22073  : _M_ok(false), _M_os(__os)
22074  {
22075 
22076  if (__os.tie() && __os.good())
22077  __os.tie()->flush();
22078 
22079  if (__os.good())
22080  _M_ok = true;
22081  else
22082  __os.setstate(ios_base::failbit);
22083  }
22084 
22085  template<typename _CharT, typename _Traits>
22086  template<typename _ValueT>
22087  basic_ostream<_CharT, _Traits>&
22088  basic_ostream<_CharT, _Traits>::
22089  _M_insert(_ValueT __v)
22090  {
22091  sentry __cerb(*this);
22092  if (__cerb)
22093  {
22094  ios_base::iostate __err = ios_base::goodbit;
22095  try
22096  {
22097  const __num_put_type& __np = __check_facet(this->_M_num_put);
22098  if (__np.put(*this, *this, this->fill(), __v).failed())
22099  __err |= ios_base::badbit;
22100  }
22102  {
22103  this->_M_setstate(ios_base::badbit);
22104  throw;
22105  }
22106  catch(...)
22107  { this->_M_setstate(ios_base::badbit); }
22108  if (__err)
22109  this->setstate(__err);
22110  }
22111  return *this;
22112  }
22113 
22114  template<typename _CharT, typename _Traits>
22115  basic_ostream<_CharT, _Traits>&
22116  basic_ostream<_CharT, _Traits>::
22117  operator<<(short __n)
22118  {
22119 
22120 
22121  const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
22122  if (__fmt == ios_base::oct || __fmt == ios_base::hex)
22123  return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
22124  else
22125  return _M_insert(static_cast<long>(__n));
22126  }
22127 
22128  template<typename _CharT, typename _Traits>
22129  basic_ostream<_CharT, _Traits>&
22130  basic_ostream<_CharT, _Traits>::
22131  operator<<(int __n)
22132  {
22133 
22134 
22135  const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
22136  if (__fmt == ios_base::oct || __fmt == ios_base::hex)
22137  return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
22138  else
22139  return _M_insert(static_cast<long>(__n));
22140  }
22141 
22142  template<typename _CharT, typename _Traits>
22143  basic_ostream<_CharT, _Traits>&
22144  basic_ostream<_CharT, _Traits>::
22145  operator<<(__streambuf_type* __sbin)
22146  {
22147  ios_base::iostate __err = ios_base::goodbit;
22148  sentry __cerb(*this);
22149  if (__cerb && __sbin)
22150  {
22151  try
22152  {
22153  if (!__copy_streambufs(__sbin, this->rdbuf()))
22154  __err |= ios_base::failbit;
22155  }
22157  {
22158  this->_M_setstate(ios_base::badbit);
22159  throw;
22160  }
22161  catch(...)
22162  { this->_M_setstate(ios_base::failbit); }
22163  }
22164  else if (!__sbin)
22165  __err |= ios_base::badbit;
22166  if (__err)
22167  this->setstate(__err);
22168  return *this;
22169  }
22170 
22171  template<typename _CharT, typename _Traits>
22172  basic_ostream<_CharT, _Traits>&
22173  basic_ostream<_CharT, _Traits>::
22174  put(char_type __c)
22175  {
22176 
22177 
22178 
22179 
22180 
22181 
22182  sentry __cerb(*this);
22183  if (__cerb)
22184  {
22185  ios_base::iostate __err = ios_base::goodbit;
22186  try
22187  {
22188  const int_type __put = this->rdbuf()->sputc(__c);
22189  if (traits_type::eq_int_type(__put, traits_type::eof()))
22190  __err |= ios_base::badbit;
22191  }
22193  {
22194  this->_M_setstate(ios_base::badbit);
22195  throw;
22196  }
22197  catch(...)
22198  { this->_M_setstate(ios_base::badbit); }
22199  if (__err)
22200  this->setstate(__err);
22201  }
22202  return *this;
22203  }
22204 
22205  template<typename _CharT, typename _Traits>
22206  basic_ostream<_CharT, _Traits>&
22207  basic_ostream<_CharT, _Traits>::
22208  write(const _CharT* __s, streamsize __n)
22209  {
22210 
22211 
22212 
22213 
22214 
22215 
22216 
22217  sentry __cerb(*this);
22218  if (__cerb)
22219  {
22220  try
22221  { _M_write(__s, __n); }
22223  {
22224  this->_M_setstate(ios_base::badbit);
22225  throw;
22226  }
22227  catch(...)
22228  { this->_M_setstate(ios_base::badbit); }
22229  }
22230  return *this;
22231  }
22232 
22233  template<typename _CharT, typename _Traits>
22234  basic_ostream<_CharT, _Traits>&
22235  basic_ostream<_CharT, _Traits>::
22236  flush()
22237  {
22238 
22239 
22240 
22241  ios_base::iostate __err = ios_base::goodbit;
22242  try
22243  {
22244  if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
22245  __err |= ios_base::badbit;
22246  }
22248  {
22249  this->_M_setstate(ios_base::badbit);
22250  throw;
22251  }
22252  catch(...)
22253  { this->_M_setstate(ios_base::badbit); }
22254  if (__err)
22255  this->setstate(__err);
22256  return *this;
22257  }
22258 
22259  template<typename _CharT, typename _Traits>
22260  typename basic_ostream<_CharT, _Traits>::pos_type
22261  basic_ostream<_CharT, _Traits>::
22262  tellp()
22263  {
22264  pos_type __ret = pos_type(-1);
22265  try
22266  {
22267  if (!this->fail())
22268  __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
22269  }
22271  {
22272  this->_M_setstate(ios_base::badbit);
22273  throw;
22274  }
22275  catch(...)
22276  { this->_M_setstate(ios_base::badbit); }
22277  return __ret;
22278  }
22279 
22280  template<typename _CharT, typename _Traits>
22281  basic_ostream<_CharT, _Traits>&
22282  basic_ostream<_CharT, _Traits>::
22283  seekp(pos_type __pos)
22284  {
22285  ios_base::iostate __err = ios_base::goodbit;
22286  try
22287  {
22288  if (!this->fail())
22289  {
22290 
22291 
22292  const pos_type __p = this->rdbuf()->pubseekpos(__pos,
22293  ios_base::out);
22294 
22295 
22296  if (__p == pos_type(off_type(-1)))
22297  __err |= ios_base::failbit;
22298  }
22299  }
22301  {
22302  this->_M_setstate(ios_base::badbit);
22303  throw;
22304  }
22305  catch(...)
22306  { this->_M_setstate(ios_base::badbit); }
22307  if (__err)
22308  this->setstate(__err);
22309  return *this;
22310  }
22311 
22312  template<typename _CharT, typename _Traits>
22313  basic_ostream<_CharT, _Traits>&
22314  basic_ostream<_CharT, _Traits>::
22315  seekp(off_type __off, ios_base::seekdir __dir)
22316  {
22317  ios_base::iostate __err = ios_base::goodbit;
22318  try
22319  {
22320  if (!this->fail())
22321  {
22322 
22323 
22324  const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
22325  ios_base::out);
22326 
22327 
22328  if (__p == pos_type(off_type(-1)))
22329  __err |= ios_base::failbit;
22330  }
22331  }
22333  {
22334  this->_M_setstate(ios_base::badbit);
22335  throw;
22336  }
22337  catch(...)
22338  { this->_M_setstate(ios_base::badbit); }
22339  if (__err)
22340  this->setstate(__err);
22341  return *this;
22342  }
22343 
22344  template<typename _CharT, typename _Traits>
22345  basic_ostream<_CharT, _Traits>&
22346  operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
22347  {
22348  if (!__s)
22349  __out.setstate(ios_base::badbit);
22350  else
22351  {
22352 
22353 
22354  const size_t __clen = char_traits<char>::length(__s);
22355  try
22356  {
22357  struct __ptr_guard
22358  {
22359  _CharT *__p;
22360  __ptr_guard (_CharT *__ip): __p(__ip) { }
22361  ~__ptr_guard() { delete[] __p; }
22362  _CharT* __get() { return __p; }
22363  } __pg (new _CharT[__clen]);
22364 
22365  _CharT *__ws = __pg.__get();
22366  for (size_t __i = 0; __i < __clen; ++__i)
22367  __ws[__i] = __out.widen(__s[__i]);
22368  __ostream_insert(__out, __ws, __clen);
22369  }
22371  {
22372  __out._M_setstate(ios_base::badbit);
22373  throw;
22374  }
22375  catch(...)
22376  { __out._M_setstate(ios_base::badbit); }
22377  }
22378  return __out;
22379  }
22380 
22381 
22382 
22383 
22384  extern template class basic_ostream<char>;
22385  extern template ostream& endl(ostream&);
22386  extern template ostream& ends(ostream&);
22387  extern template ostream& flush(ostream&);
22388  extern template ostream& operator<<(ostream&, char);
22389  extern template ostream& operator<<(ostream&, unsigned char);
22390  extern template ostream& operator<<(ostream&, signed char);
22391  extern template ostream& operator<<(ostream&, const char*);
22392  extern template ostream& operator<<(ostream&, const unsigned char*);
22393  extern template ostream& operator<<(ostream&, const signed char*);
22394 
22395  extern template ostream& ostream::_M_insert(long);
22396  extern template ostream& ostream::_M_insert(unsigned long);
22397  extern template ostream& ostream::_M_insert(bool);
22398 
22399  extern template ostream& ostream::_M_insert(long long);
22400  extern template ostream& ostream::_M_insert(unsigned long long);
22401 
22402  extern template ostream& ostream::_M_insert(double);
22403  extern template ostream& ostream::_M_insert(long double);
22404  extern template ostream& ostream::_M_insert(const void*);
22405 
22406 
22407  extern template class basic_ostream<wchar_t>;
22408  extern template wostream& endl(wostream&);
22409  extern template wostream& ends(wostream&);
22410  extern template wostream& flush(wostream&);
22411  extern template wostream& operator<<(wostream&, wchar_t);
22412  extern template wostream& operator<<(wostream&, char);
22413  extern template wostream& operator<<(wostream&, const wchar_t*);
22414  extern template wostream& operator<<(wostream&, const char*);
22415 
22416  extern template wostream& wostream::_M_insert(long);
22417  extern template wostream& wostream::_M_insert(unsigned long);
22418  extern template wostream& wostream::_M_insert(bool);
22419 
22420  extern template wostream& wostream::_M_insert(long long);
22421  extern template wostream& wostream::_M_insert(unsigned long long);
22422 
22423  extern template wostream& wostream::_M_insert(double);
22424  extern template wostream& wostream::_M_insert(long double);
22425  extern template wostream& wostream::_M_insert(const void*);
22426 
22427 
22428 
22429 
22430 }
22431 # 610 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ostream" 2 3
22432 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
22433 
22434 namespace std __attribute__ ((__visibility__ ("default")))
22435 {
22436 # 57 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22437  template<typename _CharT, typename _Traits>
22438  class basic_istream : virtual public basic_ios<_CharT, _Traits>
22439  {
22440  public:
22441 
22442  typedef _CharT char_type;
22443  typedef typename _Traits::int_type int_type;
22444  typedef typename _Traits::pos_type pos_type;
22445  typedef typename _Traits::off_type off_type;
22446  typedef _Traits traits_type;
22447 
22448 
22449  typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
22450  typedef basic_ios<_CharT, _Traits> __ios_type;
22451  typedef basic_istream<_CharT, _Traits> __istream_type;
22452  typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
22453  __num_get_type;
22454  typedef ctype<_CharT> __ctype_type;
22455 
22456  protected:
22457 
22458 
22459 
22460 
22461 
22462  streamsize _M_gcount;
22463 
22464  public:
22465 
22466 
22467 
22468 
22469 
22470 
22471 
22472  explicit
22473  basic_istream(__streambuf_type* __sb)
22474  : _M_gcount(streamsize(0))
22475  { this->init(__sb); }
22476 
22477 
22478 
22479 
22480 
22481 
22482  virtual
22483  ~basic_istream()
22484  { _M_gcount = streamsize(0); }
22485 
22486 
22487  class sentry;
22488  friend class sentry;
22489 # 119 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22490  __istream_type&
22491  operator>>(__istream_type& (*__pf)(__istream_type&))
22492  { return __pf(*this); }
22493 
22494  __istream_type&
22495  operator>>(__ios_type& (*__pf)(__ios_type&))
22496  {
22497  __pf(*this);
22498  return *this;
22499  }
22500 
22501  __istream_type&
22502  operator>>(ios_base& (*__pf)(ios_base&))
22503  {
22504  __pf(*this);
22505  return *this;
22506  }
22507 # 167 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22508  __istream_type&
22509  operator>>(bool& __n)
22510  { return _M_extract(__n); }
22511 
22512  __istream_type&
22513  operator>>(short& __n);
22514 
22515  __istream_type&
22516  operator>>(unsigned short& __n)
22517  { return _M_extract(__n); }
22518 
22519  __istream_type&
22520  operator>>(int& __n);
22521 
22522  __istream_type&
22523  operator>>(unsigned int& __n)
22524  { return _M_extract(__n); }
22525 
22526  __istream_type&
22527  operator>>(long& __n)
22528  { return _M_extract(__n); }
22529 
22530  __istream_type&
22531  operator>>(unsigned long& __n)
22532  { return _M_extract(__n); }
22533 
22534 
22535  __istream_type&
22536  operator>>(long long& __n)
22537  { return _M_extract(__n); }
22538 
22539  __istream_type&
22540  operator>>(unsigned long long& __n)
22541  { return _M_extract(__n); }
22542 # 213 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22543  __istream_type&
22544  operator>>(float& __f)
22545  { return _M_extract(__f); }
22546 
22547  __istream_type&
22548  operator>>(double& __f)
22549  { return _M_extract(__f); }
22550 
22551  __istream_type&
22552  operator>>(long double& __f)
22553  { return _M_extract(__f); }
22554 # 234 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22555  __istream_type&
22556  operator>>(void*& __p)
22557  { return _M_extract(__p); }
22558 # 258 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22559  __istream_type&
22560  operator>>(__streambuf_type* __sb);
22561 # 268 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22562  streamsize
22563  gcount() const
22564  { return _M_gcount; }
22565 # 301 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22566  int_type
22567  get();
22568 # 315 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22569  __istream_type&
22570  get(char_type& __c);
22571 # 342 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22572  __istream_type&
22573  get(char_type* __s, streamsize __n, char_type __delim);
22574 # 353 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22575  __istream_type&
22576  get(char_type* __s, streamsize __n)
22577  { return this->get(__s, __n, this->widen('\n')); }
22578 # 376 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22579  __istream_type&
22580  get(__streambuf_type& __sb, char_type __delim);
22581 # 386 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22582  __istream_type&
22583  get(__streambuf_type& __sb)
22584  { return this->get(__sb, this->widen('\n')); }
22585 # 415 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22586  __istream_type&
22587  getline(char_type* __s, streamsize __n, char_type __delim);
22588 # 426 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22589  __istream_type&
22590  getline(char_type* __s, streamsize __n)
22591  { return this->getline(__s, __n, this->widen('\n')); }
22592 # 450 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22593  __istream_type&
22594  ignore(streamsize __n, int_type __delim);
22595 
22596  __istream_type&
22597  ignore(streamsize __n);
22598 
22599  __istream_type&
22600  ignore();
22601 # 467 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22602  int_type
22603  peek();
22604 # 485 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22605  __istream_type&
22606  read(char_type* __s, streamsize __n);
22607 # 504 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22608  streamsize
22609  readsome(char_type* __s, streamsize __n);
22610 # 521 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22611  __istream_type&
22612  putback(char_type __c);
22613 # 537 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22614  __istream_type&
22615  unget();
22616 # 555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22617  int
22618  sync();
22619 # 570 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22620  pos_type
22621  tellg();
22622 # 585 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22623  __istream_type&
22624  seekg(pos_type);
22625 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22626  __istream_type&
22627  seekg(off_type, ios_base::seekdir);
22628 
22629 
22630  protected:
22631  basic_istream()
22632  : _M_gcount(streamsize(0))
22633  { this->init(0); }
22634 
22635  template<typename _ValueT>
22636  __istream_type&
22637  _M_extract(_ValueT& __v);
22638  };
22639 
22640 
22641  template<>
22642  basic_istream<char>&
22643  basic_istream<char>::
22644  getline(char_type* __s, streamsize __n, char_type __delim);
22645 
22646  template<>
22647  basic_istream<char>&
22648  basic_istream<char>::
22649  ignore(streamsize __n);
22650 
22651  template<>
22652  basic_istream<char>&
22653  basic_istream<char>::
22654  ignore(streamsize __n, int_type __delim);
22655 
22656 
22657  template<>
22658  basic_istream<wchar_t>&
22659  basic_istream<wchar_t>::
22660  getline(char_type* __s, streamsize __n, char_type __delim);
22661 
22662  template<>
22663  basic_istream<wchar_t>&
22664  basic_istream<wchar_t>::
22665  ignore(streamsize __n);
22666 
22667  template<>
22668  basic_istream<wchar_t>&
22669  basic_istream<wchar_t>::
22670  ignore(streamsize __n, int_type __delim);
22671 # 656 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22672  template<typename _CharT, typename _Traits>
22673  class basic_istream<_CharT, _Traits>::sentry
22674  {
22675 
22676  bool _M_ok;
22677 
22678  public:
22679 
22680  typedef _Traits traits_type;
22681  typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
22682  typedef basic_istream<_CharT, _Traits> __istream_type;
22683  typedef typename __istream_type::__ctype_type __ctype_type;
22684  typedef typename _Traits::int_type __int_type;
22685 # 692 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22686  explicit
22687  sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);
22688 # 703 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22689  explicit
22690 
22691  operator bool() const
22692  { return _M_ok; }
22693  };
22694 # 721 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22695  template<typename _CharT, typename _Traits>
22696  basic_istream<_CharT, _Traits>&
22697  operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
22698 
22699  template<class _Traits>
22700  inline basic_istream<char, _Traits>&
22701  operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
22702  { return (__in >> reinterpret_cast<char&>(__c)); }
22703 
22704  template<class _Traits>
22705  inline basic_istream<char, _Traits>&
22706  operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
22707  { return (__in >> reinterpret_cast<char&>(__c)); }
22708 # 763 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22709  template<typename _CharT, typename _Traits>
22710  basic_istream<_CharT, _Traits>&
22711  operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
22712 
22713 
22714  template<>
22715  basic_istream<char>&
22716  operator>>(basic_istream<char>& __in, char* __s);
22717 
22718  template<class _Traits>
22719  inline basic_istream<char, _Traits>&
22720  operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
22721  { return (__in >> reinterpret_cast<char*>(__s)); }
22722 
22723  template<class _Traits>
22724  inline basic_istream<char, _Traits>&
22725  operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
22726  { return (__in >> reinterpret_cast<char*>(__s)); }
22727 # 794 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22728  template<typename _CharT, typename _Traits>
22729  class basic_iostream
22730  : public basic_istream<_CharT, _Traits>,
22731  public basic_ostream<_CharT, _Traits>
22732  {
22733  public:
22734 
22735 
22736 
22737  typedef _CharT char_type;
22738  typedef typename _Traits::int_type int_type;
22739  typedef typename _Traits::pos_type pos_type;
22740  typedef typename _Traits::off_type off_type;
22741  typedef _Traits traits_type;
22742 
22743 
22744  typedef basic_istream<_CharT, _Traits> __istream_type;
22745  typedef basic_ostream<_CharT, _Traits> __ostream_type;
22746 
22747 
22748 
22749 
22750 
22751 
22752 
22753  explicit
22754  basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
22755  : __istream_type(__sb), __ostream_type(__sb) { }
22756 
22757 
22758 
22759 
22760  virtual
22761  ~basic_iostream() { }
22762 
22763  protected:
22764  basic_iostream()
22765  : __istream_type(), __ostream_type() { }
22766  };
22767 # 854 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22768  template<typename _CharT, typename _Traits>
22769  basic_istream<_CharT, _Traits>&
22770  ws(basic_istream<_CharT, _Traits>& __is);
22771 # 870 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 3
22772  template<typename _CharT, typename _Traits, typename _Tp>
22773  inline basic_istream<_CharT, _Traits>&
22774  operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
22775  { return (__is >> __x); }
22776 
22777 
22778 
22779 }
22780 
22781 
22782 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 1 3
22783 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 3
22784 
22785 
22786 
22787 namespace std __attribute__ ((__visibility__ ("default")))
22788 {
22789 
22790 
22791  template<typename _CharT, typename _Traits>
22792  basic_istream<_CharT, _Traits>::sentry::
22793  sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
22794  {
22795  ios_base::iostate __err = ios_base::goodbit;
22796  if (__in.good())
22797  {
22798  if (__in.tie())
22799  __in.tie()->flush();
22800  if (!__noskip && bool(__in.flags() & ios_base::skipws))
22801  {
22802  const __int_type __eof = traits_type::eof();
22803  __streambuf_type* __sb = __in.rdbuf();
22804  __int_type __c = __sb->sgetc();
22805 
22806  const __ctype_type& __ct = __check_facet(__in._M_ctype);
22807  while (!traits_type::eq_int_type(__c, __eof)
22808  && __ct.is(ctype_base::space,
22809  traits_type::to_char_type(__c)))
22810  __c = __sb->snextc();
22811 
22812 
22813 
22814 
22815  if (traits_type::eq_int_type(__c, __eof))
22816  __err |= ios_base::eofbit;
22817  }
22818  }
22819 
22820  if (__in.good() && __err == ios_base::goodbit)
22821  _M_ok = true;
22822  else
22823  {
22824  __err |= ios_base::failbit;
22825  __in.setstate(__err);
22826  }
22827  }
22828 
22829  template<typename _CharT, typename _Traits>
22830  template<typename _ValueT>
22831  basic_istream<_CharT, _Traits>&
22832  basic_istream<_CharT, _Traits>::
22833  _M_extract(_ValueT& __v)
22834  {
22835  sentry __cerb(*this, false);
22836  if (__cerb)
22837  {
22838  ios_base::iostate __err = ios_base::goodbit;
22839  try
22840  {
22841  const __num_get_type& __ng = __check_facet(this->_M_num_get);
22842  __ng.get(*this, 0, *this, __err, __v);
22843  }
22845  {
22846  this->_M_setstate(ios_base::badbit);
22847  throw;
22848  }
22849  catch(...)
22850  { this->_M_setstate(ios_base::badbit); }
22851  if (__err)
22852  this->setstate(__err);
22853  }
22854  return *this;
22855  }
22856 
22857  template<typename _CharT, typename _Traits>
22858  basic_istream<_CharT, _Traits>&
22859  basic_istream<_CharT, _Traits>::
22860  operator>>(short& __n)
22861  {
22862 
22863 
22864  sentry __cerb(*this, false);
22865  if (__cerb)
22866  {
22867  ios_base::iostate __err = ios_base::goodbit;
22868  try
22869  {
22870  long __l;
22871  const __num_get_type& __ng = __check_facet(this->_M_num_get);
22872  __ng.get(*this, 0, *this, __err, __l);
22873 
22874 
22875 
22876  if (__l < __gnu_cxx::__numeric_traits<short>::__min)
22877  {
22878  __err |= ios_base::failbit;
22879  __n = __gnu_cxx::__numeric_traits<short>::__min;
22880  }
22881  else if (__l > __gnu_cxx::__numeric_traits<short>::__max)
22882  {
22883  __err |= ios_base::failbit;
22884  __n = __gnu_cxx::__numeric_traits<short>::__max;
22885  }
22886  else
22887  __n = short(__l);
22888  }
22890  {
22891  this->_M_setstate(ios_base::badbit);
22892  throw;
22893  }
22894  catch(...)
22895  { this->_M_setstate(ios_base::badbit); }
22896  if (__err)
22897  this->setstate(__err);
22898  }
22899  return *this;
22900  }
22901 
22902  template<typename _CharT, typename _Traits>
22903  basic_istream<_CharT, _Traits>&
22904  basic_istream<_CharT, _Traits>::
22905  operator>>(int& __n)
22906  {
22907 
22908 
22909  sentry __cerb(*this, false);
22910  if (__cerb)
22911  {
22912  ios_base::iostate __err = ios_base::goodbit;
22913  try
22914  {
22915  long __l;
22916  const __num_get_type& __ng = __check_facet(this->_M_num_get);
22917  __ng.get(*this, 0, *this, __err, __l);
22918 
22919 
22920 
22921  if (__l < __gnu_cxx::__numeric_traits<int>::__min)
22922  {
22923  __err |= ios_base::failbit;
22924  __n = __gnu_cxx::__numeric_traits<int>::__min;
22925  }
22926  else if (__l > __gnu_cxx::__numeric_traits<int>::__max)
22927  {
22928  __err |= ios_base::failbit;
22929  __n = __gnu_cxx::__numeric_traits<int>::__max;
22930  }
22931  else
22932  __n = int(__l);
22933  }
22935  {
22936  this->_M_setstate(ios_base::badbit);
22937  throw;
22938  }
22939  catch(...)
22940  { this->_M_setstate(ios_base::badbit); }
22941  if (__err)
22942  this->setstate(__err);
22943  }
22944  return *this;
22945  }
22946 
22947  template<typename _CharT, typename _Traits>
22948  basic_istream<_CharT, _Traits>&
22949  basic_istream<_CharT, _Traits>::
22950  operator>>(__streambuf_type* __sbout)
22951  {
22952  ios_base::iostate __err = ios_base::goodbit;
22953  sentry __cerb(*this, false);
22954  if (__cerb && __sbout)
22955  {
22956  try
22957  {
22958  bool __ineof;
22959  if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof))
22960  __err |= ios_base::failbit;
22961  if (__ineof)
22962  __err |= ios_base::eofbit;
22963  }
22965  {
22966  this->_M_setstate(ios_base::failbit);
22967  throw;
22968  }
22969  catch(...)
22970  { this->_M_setstate(ios_base::failbit); }
22971  }
22972  else if (!__sbout)
22973  __err |= ios_base::failbit;
22974  if (__err)
22975  this->setstate(__err);
22976  return *this;
22977  }
22978 
22979  template<typename _CharT, typename _Traits>
22980  typename basic_istream<_CharT, _Traits>::int_type
22981  basic_istream<_CharT, _Traits>::
22982  get(void)
22983  {
22984  const int_type __eof = traits_type::eof();
22985  int_type __c = __eof;
22986  _M_gcount = 0;
22987  ios_base::iostate __err = ios_base::goodbit;
22988  sentry __cerb(*this, true);
22989  if (__cerb)
22990  {
22991  try
22992  {
22993  __c = this->rdbuf()->sbumpc();
22994 
22995  if (!traits_type::eq_int_type(__c, __eof))
22996  _M_gcount = 1;
22997  else
22998  __err |= ios_base::eofbit;
22999  }
23001  {
23002  this->_M_setstate(ios_base::badbit);
23003  throw;
23004  }
23005  catch(...)
23006  { this->_M_setstate(ios_base::badbit); }
23007  }
23008  if (!_M_gcount)
23009  __err |= ios_base::failbit;
23010  if (__err)
23011  this->setstate(__err);
23012  return __c;
23013  }
23014 
23015  template<typename _CharT, typename _Traits>
23016  basic_istream<_CharT, _Traits>&
23017  basic_istream<_CharT, _Traits>::
23018  get(char_type& __c)
23019  {
23020  _M_gcount = 0;
23021  ios_base::iostate __err = ios_base::goodbit;
23022  sentry __cerb(*this, true);
23023  if (__cerb)
23024  {
23025  try
23026  {
23027  const int_type __cb = this->rdbuf()->sbumpc();
23028 
23029  if (!traits_type::eq_int_type(__cb, traits_type::eof()))
23030  {
23031  _M_gcount = 1;
23032  __c = traits_type::to_char_type(__cb);
23033  }
23034  else
23035  __err |= ios_base::eofbit;
23036  }
23038  {
23039  this->_M_setstate(ios_base::badbit);
23040  throw;
23041  }
23042  catch(...)
23043  { this->_M_setstate(ios_base::badbit); }
23044  }
23045  if (!_M_gcount)
23046  __err |= ios_base::failbit;
23047  if (__err)
23048  this->setstate(__err);
23049  return *this;
23050  }
23051 
23052  template<typename _CharT, typename _Traits>
23053  basic_istream<_CharT, _Traits>&
23054  basic_istream<_CharT, _Traits>::
23055  get(char_type* __s, streamsize __n, char_type __delim)
23056  {
23057  _M_gcount = 0;
23058  ios_base::iostate __err = ios_base::goodbit;
23059  sentry __cerb(*this, true);
23060  if (__cerb)
23061  {
23062  try
23063  {
23064  const int_type __idelim = traits_type::to_int_type(__delim);
23065  const int_type __eof = traits_type::eof();
23066  __streambuf_type* __sb = this->rdbuf();
23067  int_type __c = __sb->sgetc();
23068 
23069  while (_M_gcount + 1 < __n
23070  && !traits_type::eq_int_type(__c, __eof)
23071  && !traits_type::eq_int_type(__c, __idelim))
23072  {
23073  *__s++ = traits_type::to_char_type(__c);
23074  ++_M_gcount;
23075  __c = __sb->snextc();
23076  }
23077  if (traits_type::eq_int_type(__c, __eof))
23078  __err |= ios_base::eofbit;
23079  }
23081  {
23082  this->_M_setstate(ios_base::badbit);
23083  throw;
23084  }
23085  catch(...)
23086  { this->_M_setstate(ios_base::badbit); }
23087  }
23088 
23089 
23090  if (__n > 0)
23091  *__s = char_type();
23092  if (!_M_gcount)
23093  __err |= ios_base::failbit;
23094  if (__err)
23095  this->setstate(__err);
23096  return *this;
23097  }
23098 
23099  template<typename _CharT, typename _Traits>
23100  basic_istream<_CharT, _Traits>&
23101  basic_istream<_CharT, _Traits>::
23102  get(__streambuf_type& __sb, char_type __delim)
23103  {
23104  _M_gcount = 0;
23105  ios_base::iostate __err = ios_base::goodbit;
23106  sentry __cerb(*this, true);
23107  if (__cerb)
23108  {
23109  try
23110  {
23111  const int_type __idelim = traits_type::to_int_type(__delim);
23112  const int_type __eof = traits_type::eof();
23113  __streambuf_type* __this_sb = this->rdbuf();
23114  int_type __c = __this_sb->sgetc();
23115  char_type __c2 = traits_type::to_char_type(__c);
23116 
23117  while (!traits_type::eq_int_type(__c, __eof)
23118  && !traits_type::eq_int_type(__c, __idelim)
23119  && !traits_type::eq_int_type(__sb.sputc(__c2), __eof))
23120  {
23121  ++_M_gcount;
23122  __c = __this_sb->snextc();
23123  __c2 = traits_type::to_char_type(__c);
23124  }
23125  if (traits_type::eq_int_type(__c, __eof))
23126  __err |= ios_base::eofbit;
23127  }
23129  {
23130  this->_M_setstate(ios_base::badbit);
23131  throw;
23132  }
23133  catch(...)
23134  { this->_M_setstate(ios_base::badbit); }
23135  }
23136  if (!_M_gcount)
23137  __err |= ios_base::failbit;
23138  if (__err)
23139  this->setstate(__err);
23140  return *this;
23141  }
23142 
23143  template<typename _CharT, typename _Traits>
23144  basic_istream<_CharT, _Traits>&
23145  basic_istream<_CharT, _Traits>::
23146  getline(char_type* __s, streamsize __n, char_type __delim)
23147  {
23148  _M_gcount = 0;
23149  ios_base::iostate __err = ios_base::goodbit;
23150  sentry __cerb(*this, true);
23151  if (__cerb)
23152  {
23153  try
23154  {
23155  const int_type __idelim = traits_type::to_int_type(__delim);
23156  const int_type __eof = traits_type::eof();
23157  __streambuf_type* __sb = this->rdbuf();
23158  int_type __c = __sb->sgetc();
23159 
23160  while (_M_gcount + 1 < __n
23161  && !traits_type::eq_int_type(__c, __eof)
23162  && !traits_type::eq_int_type(__c, __idelim))
23163  {
23164  *__s++ = traits_type::to_char_type(__c);
23165  __c = __sb->snextc();
23166  ++_M_gcount;
23167  }
23168  if (traits_type::eq_int_type(__c, __eof))
23169  __err |= ios_base::eofbit;
23170  else
23171  {
23172  if (traits_type::eq_int_type(__c, __idelim))
23173  {
23174  __sb->sbumpc();
23175  ++_M_gcount;
23176  }
23177  else
23178  __err |= ios_base::failbit;
23179  }
23180  }
23182  {
23183  this->_M_setstate(ios_base::badbit);
23184  throw;
23185  }
23186  catch(...)
23187  { this->_M_setstate(ios_base::badbit); }
23188  }
23189 
23190 
23191  if (__n > 0)
23192  *__s = char_type();
23193  if (!_M_gcount)
23194  __err |= ios_base::failbit;
23195  if (__err)
23196  this->setstate(__err);
23197  return *this;
23198  }
23199 
23200 
23201 
23202 
23203  template<typename _CharT, typename _Traits>
23204  basic_istream<_CharT, _Traits>&
23205  basic_istream<_CharT, _Traits>::
23206  ignore(void)
23207  {
23208  _M_gcount = 0;
23209  sentry __cerb(*this, true);
23210  if (__cerb)
23211  {
23212  ios_base::iostate __err = ios_base::goodbit;
23213  try
23214  {
23215  const int_type __eof = traits_type::eof();
23216  __streambuf_type* __sb = this->rdbuf();
23217 
23218  if (traits_type::eq_int_type(__sb->sbumpc(), __eof))
23219  __err |= ios_base::eofbit;
23220  else
23221  _M_gcount = 1;
23222  }
23224  {
23225  this->_M_setstate(ios_base::badbit);
23226  throw;
23227  }
23228  catch(...)
23229  { this->_M_setstate(ios_base::badbit); }
23230  if (__err)
23231  this->setstate(__err);
23232  }
23233  return *this;
23234  }
23235 
23236  template<typename _CharT, typename _Traits>
23237  basic_istream<_CharT, _Traits>&
23238  basic_istream<_CharT, _Traits>::
23239  ignore(streamsize __n)
23240  {
23241  _M_gcount = 0;
23242  sentry __cerb(*this, true);
23243  if (__cerb && __n > 0)
23244  {
23245  ios_base::iostate __err = ios_base::goodbit;
23246  try
23247  {
23248  const int_type __eof = traits_type::eof();
23249  __streambuf_type* __sb = this->rdbuf();
23250  int_type __c = __sb->sgetc();
23251 # 513 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/istream.tcc" 3
23252  bool __large_ignore = false;
23253  while (true)
23254  {
23255  while (_M_gcount < __n
23256  && !traits_type::eq_int_type(__c, __eof))
23257  {
23258  ++_M_gcount;
23259  __c = __sb->snextc();
23260  }
23261  if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
23262  && !traits_type::eq_int_type(__c, __eof))
23263  {
23264  _M_gcount =
23265  __gnu_cxx::__numeric_traits<streamsize>::__min;
23266  __large_ignore = true;
23267  }
23268  else
23269  break;
23270  }
23271 
23272  if (__large_ignore)
23273  _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
23274 
23275  if (traits_type::eq_int_type(__c, __eof))
23276  __err |= ios_base::eofbit;
23277  }
23279  {
23280  this->_M_setstate(ios_base::badbit);
23281  throw;
23282  }
23283  catch(...)
23284  { this->_M_setstate(ios_base::badbit); }
23285  if (__err)
23286  this->setstate(__err);
23287  }
23288  return *this;
23289  }
23290 
23291  template<typename _CharT, typename _Traits>
23292  basic_istream<_CharT, _Traits>&
23293  basic_istream<_CharT, _Traits>::
23294  ignore(streamsize __n, int_type __delim)
23295  {
23296  _M_gcount = 0;
23297  sentry __cerb(*this, true);
23298  if (__cerb && __n > 0)
23299  {
23300  ios_base::iostate __err = ios_base::goodbit;
23301  try
23302  {
23303  const int_type __eof = traits_type::eof();
23304  __streambuf_type* __sb = this->rdbuf();
23305  int_type __c = __sb->sgetc();
23306 
23307 
23308  bool __large_ignore = false;
23309  while (true)
23310  {
23311  while (_M_gcount < __n
23312  && !traits_type::eq_int_type(__c, __eof)
23313  && !traits_type::eq_int_type(__c, __delim))
23314  {
23315  ++_M_gcount;
23316  __c = __sb->snextc();
23317  }
23318  if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
23319  && !traits_type::eq_int_type(__c, __eof)
23320  && !traits_type::eq_int_type(__c, __delim))
23321  {
23322  _M_gcount =
23323  __gnu_cxx::__numeric_traits<streamsize>::__min;
23324  __large_ignore = true;
23325  }
23326  else
23327  break;
23328  }
23329 
23330  if (__large_ignore)
23331  _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
23332 
23333  if (traits_type::eq_int_type(__c, __eof))
23334  __err |= ios_base::eofbit;
23335  else if (traits_type::eq_int_type(__c, __delim))
23336  {
23337  if (_M_gcount
23338  < __gnu_cxx::__numeric_traits<streamsize>::__max)
23339  ++_M_gcount;
23340  __sb->sbumpc();
23341  }
23342  }
23344  {
23345  this->_M_setstate(ios_base::badbit);
23346  throw;
23347  }
23348  catch(...)
23349  { this->_M_setstate(ios_base::badbit); }
23350  if (__err)
23351  this->setstate(__err);
23352  }
23353  return *this;
23354  }
23355 
23356  template<typename _CharT, typename _Traits>
23357  typename basic_istream<_CharT, _Traits>::int_type
23358  basic_istream<_CharT, _Traits>::
23359  peek(void)
23360  {
23361  int_type __c = traits_type::eof();
23362  _M_gcount = 0;
23363  sentry __cerb(*this, true);
23364  if (__cerb)
23365  {
23366  ios_base::iostate __err = ios_base::goodbit;
23367  try
23368  {
23369  __c = this->rdbuf()->sgetc();
23370  if (traits_type::eq_int_type(__c, traits_type::eof()))
23371  __err |= ios_base::eofbit;
23372  }
23374  {
23375  this->_M_setstate(ios_base::badbit);
23376  throw;
23377  }
23378  catch(...)
23379  { this->_M_setstate(ios_base::badbit); }
23380  if (__err)
23381  this->setstate(__err);
23382  }
23383  return __c;
23384  }
23385 
23386  template<typename _CharT, typename _Traits>
23387  basic_istream<_CharT, _Traits>&
23388  basic_istream<_CharT, _Traits>::
23389  read(char_type* __s, streamsize __n)
23390  {
23391  _M_gcount = 0;
23392  sentry __cerb(*this, true);
23393  if (__cerb)
23394  {
23395  ios_base::iostate __err = ios_base::goodbit;
23396  try
23397  {
23398  _M_gcount = this->rdbuf()->sgetn(__s, __n);
23399  if (_M_gcount != __n)
23400  __err |= (ios_base::eofbit | ios_base::failbit);
23401  }
23403  {
23404  this->_M_setstate(ios_base::badbit);
23405  throw;
23406  }
23407  catch(...)
23408  { this->_M_setstate(ios_base::badbit); }
23409  if (__err)
23410  this->setstate(__err);
23411  }
23412  return *this;
23413  }
23414 
23415  template<typename _CharT, typename _Traits>
23416  streamsize
23417  basic_istream<_CharT, _Traits>::
23418  readsome(char_type* __s, streamsize __n)
23419  {
23420  _M_gcount = 0;
23421  sentry __cerb(*this, true);
23422  if (__cerb)
23423  {
23424  ios_base::iostate __err = ios_base::goodbit;
23425  try
23426  {
23427 
23428  const streamsize __num = this->rdbuf()->in_avail();
23429  if (__num > 0)
23430  _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n));
23431  else if (__num == -1)
23432  __err |= ios_base::eofbit;
23433  }
23435  {
23436  this->_M_setstate(ios_base::badbit);
23437  throw;
23438  }
23439  catch(...)
23440  { this->_M_setstate(ios_base::badbit); }
23441  if (__err)
23442  this->setstate(__err);
23443  }
23444  return _M_gcount;
23445  }
23446 
23447  template<typename _CharT, typename _Traits>
23448  basic_istream<_CharT, _Traits>&
23449  basic_istream<_CharT, _Traits>::
23450  putback(char_type __c)
23451  {
23452 
23453 
23454  _M_gcount = 0;
23455 
23456  this->clear(this->rdstate() & ~ios_base::eofbit);
23457  sentry __cerb(*this, true);
23458  if (__cerb)
23459  {
23460  ios_base::iostate __err = ios_base::goodbit;
23461  try
23462  {
23463  const int_type __eof = traits_type::eof();
23464  __streambuf_type* __sb = this->rdbuf();
23465  if (!__sb
23466  || traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
23467  __err |= ios_base::badbit;
23468  }
23470  {
23471  this->_M_setstate(ios_base::badbit);
23472  throw;
23473  }
23474  catch(...)
23475  { this->_M_setstate(ios_base::badbit); }
23476  if (__err)
23477  this->setstate(__err);
23478  }
23479  return *this;
23480  }
23481 
23482  template<typename _CharT, typename _Traits>
23483  basic_istream<_CharT, _Traits>&
23484  basic_istream<_CharT, _Traits>::
23485  unget(void)
23486  {
23487 
23488 
23489  _M_gcount = 0;
23490 
23491  this->clear(this->rdstate() & ~ios_base::eofbit);
23492  sentry __cerb(*this, true);
23493  if (__cerb)
23494  {
23495  ios_base::iostate __err = ios_base::goodbit;
23496  try
23497  {
23498  const int_type __eof = traits_type::eof();
23499  __streambuf_type* __sb = this->rdbuf();
23500  if (!__sb
23501  || traits_type::eq_int_type(__sb->sungetc(), __eof))
23502  __err |= ios_base::badbit;
23503  }
23505  {
23506  this->_M_setstate(ios_base::badbit);
23507  throw;
23508  }
23509  catch(...)
23510  { this->_M_setstate(ios_base::badbit); }
23511  if (__err)
23512  this->setstate(__err);
23513  }
23514  return *this;
23515  }
23516 
23517  template<typename _CharT, typename _Traits>
23518  int
23519  basic_istream<_CharT, _Traits>::
23520  sync(void)
23521  {
23522 
23523 
23524  int __ret = -1;
23525  sentry __cerb(*this, true);
23526  if (__cerb)
23527  {
23528  ios_base::iostate __err = ios_base::goodbit;
23529  try
23530  {
23531  __streambuf_type* __sb = this->rdbuf();
23532  if (__sb)
23533  {
23534  if (__sb->pubsync() == -1)
23535  __err |= ios_base::badbit;
23536  else
23537  __ret = 0;
23538  }
23539  }
23541  {
23542  this->_M_setstate(ios_base::badbit);
23543  throw;
23544  }
23545  catch(...)
23546  { this->_M_setstate(ios_base::badbit); }
23547  if (__err)
23548  this->setstate(__err);
23549  }
23550  return __ret;
23551  }
23552 
23553  template<typename _CharT, typename _Traits>
23554  typename basic_istream<_CharT, _Traits>::pos_type
23555  basic_istream<_CharT, _Traits>::
23556  tellg(void)
23557  {
23558 
23559 
23560  pos_type __ret = pos_type(-1);
23561  sentry __cerb(*this, true);
23562  if (__cerb)
23563  {
23564  try
23565  {
23566  if (!this->fail())
23567  __ret = this->rdbuf()->pubseekoff(0, ios_base::cur,
23568  ios_base::in);
23569  }
23571  {
23572  this->_M_setstate(ios_base::badbit);
23573  throw;
23574  }
23575  catch(...)
23576  { this->_M_setstate(ios_base::badbit); }
23577  }
23578  return __ret;
23579  }
23580 
23581  template<typename _CharT, typename _Traits>
23582  basic_istream<_CharT, _Traits>&
23583  basic_istream<_CharT, _Traits>::
23584  seekg(pos_type __pos)
23585  {
23586 
23587 
23588 
23589  this->clear(this->rdstate() & ~ios_base::eofbit);
23590  sentry __cerb(*this, true);
23591  if (__cerb)
23592  {
23593  ios_base::iostate __err = ios_base::goodbit;
23594  try
23595  {
23596  if (!this->fail())
23597  {
23598 
23599  const pos_type __p = this->rdbuf()->pubseekpos(__pos,
23600  ios_base::in);
23601 
23602 
23603  if (__p == pos_type(off_type(-1)))
23604  __err |= ios_base::failbit;
23605  }
23606  }
23608  {
23609  this->_M_setstate(ios_base::badbit);
23610  throw;
23611  }
23612  catch(...)
23613  { this->_M_setstate(ios_base::badbit); }
23614  if (__err)
23615  this->setstate(__err);
23616  }
23617  return *this;
23618  }
23619 
23620  template<typename _CharT, typename _Traits>
23621  basic_istream<_CharT, _Traits>&
23622  basic_istream<_CharT, _Traits>::
23623  seekg(off_type __off, ios_base::seekdir __dir)
23624  {
23625 
23626 
23627 
23628  this->clear(this->rdstate() & ~ios_base::eofbit);
23629  sentry __cerb(*this, true);
23630  if (__cerb)
23631  {
23632  ios_base::iostate __err = ios_base::goodbit;
23633  try
23634  {
23635  if (!this->fail())
23636  {
23637 
23638  const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
23639  ios_base::in);
23640 
23641 
23642  if (__p == pos_type(off_type(-1)))
23643  __err |= ios_base::failbit;
23644  }
23645  }
23647  {
23648  this->_M_setstate(ios_base::badbit);
23649  throw;
23650  }
23651  catch(...)
23652  { this->_M_setstate(ios_base::badbit); }
23653  if (__err)
23654  this->setstate(__err);
23655  }
23656  return *this;
23657  }
23658 
23659 
23660  template<typename _CharT, typename _Traits>
23661  basic_istream<_CharT, _Traits>&
23662  operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
23663  {
23664  typedef basic_istream<_CharT, _Traits> __istream_type;
23665  typedef typename __istream_type::int_type __int_type;
23666 
23667  typename __istream_type::sentry __cerb(__in, false);
23668  if (__cerb)
23669  {
23670  ios_base::iostate __err = ios_base::goodbit;
23671  try
23672  {
23673  const __int_type __cb = __in.rdbuf()->sbumpc();
23674  if (!_Traits::eq_int_type(__cb, _Traits::eof()))
23675  __c = _Traits::to_char_type(__cb);
23676  else
23677  __err |= (ios_base::eofbit | ios_base::failbit);
23678  }
23680  {
23681  __in._M_setstate(ios_base::badbit);
23682  throw;
23683  }
23684  catch(...)
23685  { __in._M_setstate(ios_base::badbit); }
23686  if (__err)
23687  __in.setstate(__err);
23688  }
23689  return __in;
23690  }
23691 
23692  template<typename _CharT, typename _Traits>
23693  basic_istream<_CharT, _Traits>&
23694  operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
23695  {
23696  typedef basic_istream<_CharT, _Traits> __istream_type;
23697  typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
23698  typedef typename _Traits::int_type int_type;
23699  typedef _CharT char_type;
23700  typedef ctype<_CharT> __ctype_type;
23701 
23702  streamsize __extracted = 0;
23703  ios_base::iostate __err = ios_base::goodbit;
23704  typename __istream_type::sentry __cerb(__in, false);
23705  if (__cerb)
23706  {
23707  try
23708  {
23709 
23710  streamsize __num = __in.width();
23711  if (__num <= 0)
23712  __num = __gnu_cxx::__numeric_traits<streamsize>::__max;
23713 
23714  const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
23715 
23716  const int_type __eof = _Traits::eof();
23717  __streambuf_type* __sb = __in.rdbuf();
23718  int_type __c = __sb->sgetc();
23719 
23720  while (__extracted < __num - 1
23721  && !_Traits::eq_int_type(__c, __eof)
23722  && !__ct.is(ctype_base::space,
23723  _Traits::to_char_type(__c)))
23724  {
23725  *__s++ = _Traits::to_char_type(__c);
23726  ++__extracted;
23727  __c = __sb->snextc();
23728  }
23729  if (_Traits::eq_int_type(__c, __eof))
23730  __err |= ios_base::eofbit;
23731 
23732 
23733 
23734  *__s = char_type();
23735  __in.width(0);
23736  }
23738  {
23739  __in._M_setstate(ios_base::badbit);
23740  throw;
23741  }
23742  catch(...)
23743  { __in._M_setstate(ios_base::badbit); }
23744  }
23745  if (!__extracted)
23746  __err |= ios_base::failbit;
23747  if (__err)
23748  __in.setstate(__err);
23749  return __in;
23750  }
23751 
23752 
23753  template<typename _CharT, typename _Traits>
23754  basic_istream<_CharT, _Traits>&
23755  ws(basic_istream<_CharT, _Traits>& __in)
23756  {
23757  typedef basic_istream<_CharT, _Traits> __istream_type;
23758  typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
23759  typedef typename __istream_type::int_type __int_type;
23760  typedef ctype<_CharT> __ctype_type;
23761 
23762  const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
23763  const __int_type __eof = _Traits::eof();
23764  __streambuf_type* __sb = __in.rdbuf();
23765  __int_type __c = __sb->sgetc();
23766 
23767  while (!_Traits::eq_int_type(__c, __eof)
23768  && __ct.is(ctype_base::space, _Traits::to_char_type(__c)))
23769  __c = __sb->snextc();
23770 
23771  if (_Traits::eq_int_type(__c, __eof))
23772  __in.setstate(ios_base::eofbit);
23773  return __in;
23774  }
23775 
23776 
23777 
23778 
23779  extern template class basic_istream<char>;
23780  extern template istream& ws(istream&);
23781  extern template istream& operator>>(istream&, char&);
23782  extern template istream& operator>>(istream&, char*);
23783  extern template istream& operator>>(istream&, unsigned char&);
23784  extern template istream& operator>>(istream&, signed char&);
23785  extern template istream& operator>>(istream&, unsigned char*);
23786  extern template istream& operator>>(istream&, signed char*);
23787 
23788  extern template istream& istream::_M_extract(unsigned short&);
23789  extern template istream& istream::_M_extract(unsigned int&);
23790  extern template istream& istream::_M_extract(long&);
23791  extern template istream& istream::_M_extract(unsigned long&);
23792  extern template istream& istream::_M_extract(bool&);
23793 
23794  extern template istream& istream::_M_extract(long long&);
23795  extern template istream& istream::_M_extract(unsigned long long&);
23796 
23797  extern template istream& istream::_M_extract(float&);
23798  extern template istream& istream::_M_extract(double&);
23799  extern template istream& istream::_M_extract(long double&);
23800  extern template istream& istream::_M_extract(void*&);
23801 
23802  extern template class basic_iostream<char>;
23803 
23804 
23805  extern template class basic_istream<wchar_t>;
23806  extern template wistream& ws(wistream&);
23807  extern template wistream& operator>>(wistream&, wchar_t&);
23808  extern template wistream& operator>>(wistream&, wchar_t*);
23809 
23810  extern template wistream& wistream::_M_extract(unsigned short&);
23811  extern template wistream& wistream::_M_extract(unsigned int&);
23812  extern template wistream& wistream::_M_extract(long&);
23813  extern template wistream& wistream::_M_extract(unsigned long&);
23814  extern template wistream& wistream::_M_extract(bool&);
23815 
23816  extern template wistream& wistream::_M_extract(long long&);
23817  extern template wistream& wistream::_M_extract(unsigned long long&);
23818 
23819  extern template wistream& wistream::_M_extract(float&);
23820  extern template wistream& wistream::_M_extract(double&);
23821  extern template wistream& wistream::_M_extract(long double&);
23822  extern template wistream& wistream::_M_extract(void*&);
23823 
23824  extern template class basic_iostream<wchar_t>;
23825 
23826 
23827 
23828 
23829 }
23830 # 880 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/istream" 2 3
23831 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 2 3
23832 
23833 
23834 namespace std __attribute__ ((__visibility__ ("default")))
23835 {
23836 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23837  template<typename _CharT, typename _Traits, typename _Alloc>
23838  class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
23839  {
23840  public:
23841 
23842  typedef _CharT char_type;
23843  typedef _Traits traits_type;
23844 
23845 
23846  typedef _Alloc allocator_type;
23847  typedef typename traits_type::int_type int_type;
23848  typedef typename traits_type::pos_type pos_type;
23849  typedef typename traits_type::off_type off_type;
23850 
23851  typedef basic_streambuf<char_type, traits_type> __streambuf_type;
23852  typedef basic_string<char_type, _Traits, _Alloc> __string_type;
23853  typedef typename __string_type::size_type __size_type;
23854 
23855  protected:
23856 
23857  ios_base::openmode _M_mode;
23858 
23859 
23860  __string_type _M_string;
23861 
23862  public:
23863 # 97 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23864  explicit
23865  basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out)
23866  : __streambuf_type(), _M_mode(__mode), _M_string()
23867  { }
23868 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23869  explicit
23870  basic_stringbuf(const __string_type& __str,
23871  ios_base::openmode __mode = ios_base::in | ios_base::out)
23872  : __streambuf_type(), _M_mode(), _M_string(__str.data(), __str.size())
23873  { _M_stringbuf_init(__mode); }
23874 # 125 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23875  __string_type
23876  str() const
23877  {
23878  __string_type __ret;
23879  if (this->pptr())
23880  {
23881 
23882  if (this->pptr() > this->egptr())
23883  __ret = __string_type(this->pbase(), this->pptr());
23884  else
23885  __ret = __string_type(this->pbase(), this->egptr());
23886  }
23887  else
23888  __ret = _M_string;
23889  return __ret;
23890  }
23891 # 149 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23892  void
23893  str(const __string_type& __s)
23894  {
23895 
23896  _M_string.assign(__s.data(), __s.size());
23897  _M_stringbuf_init(_M_mode);
23898  }
23899 
23900  protected:
23901 
23902  void
23903  _M_stringbuf_init(ios_base::openmode __mode)
23904  {
23905  _M_mode = __mode;
23906  __size_type __len = 0;
23907  if (_M_mode & (ios_base::ate | ios_base::app))
23908  __len = _M_string.size();
23909  _M_sync(const_cast<char_type*>(_M_string.data()), 0, __len);
23910  }
23911 
23912  virtual streamsize
23913  showmanyc()
23914  {
23915  streamsize __ret = -1;
23916  if (_M_mode & ios_base::in)
23917  {
23918  _M_update_egptr();
23919  __ret = this->egptr() - this->gptr();
23920  }
23921  return __ret;
23922  }
23923 
23924  virtual int_type
23925  underflow();
23926 
23927  virtual int_type
23928  pbackfail(int_type __c = traits_type::eof());
23929 
23930  virtual int_type
23931  overflow(int_type __c = traits_type::eof());
23932 # 201 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23933  virtual __streambuf_type*
23934  setbuf(char_type* __s, streamsize __n)
23935  {
23936  if (__s && __n >= 0)
23937  {
23938 
23939 
23940 
23941 
23942 
23943 
23944  _M_string.clear();
23945 
23946 
23947  _M_sync(__s, __n, 0);
23948  }
23949  return this;
23950  }
23951 
23952  virtual pos_type
23953  seekoff(off_type __off, ios_base::seekdir __way,
23954  ios_base::openmode __mode = ios_base::in | ios_base::out);
23955 
23956  virtual pos_type
23957  seekpos(pos_type __sp,
23958  ios_base::openmode __mode = ios_base::in | ios_base::out);
23959 
23960 
23961 
23962 
23963  void
23964  _M_sync(char_type* __base, __size_type __i, __size_type __o);
23965 
23966 
23967 
23968  void
23969  _M_update_egptr()
23970  {
23971  const bool __testin = _M_mode & ios_base::in;
23972  if (this->pptr() && this->pptr() > this->egptr())
23973  {
23974  if (__testin)
23975  this->setg(this->eback(), this->gptr(), this->pptr());
23976  else
23977  this->setg(this->pptr(), this->pptr(), this->pptr());
23978  }
23979  }
23980 
23981 
23982 
23983  void
23984  _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off);
23985  };
23986 # 271 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
23987  template<typename _CharT, typename _Traits, typename _Alloc>
23988  class basic_istringstream : public basic_istream<_CharT, _Traits>
23989  {
23990  public:
23991 
23992  typedef _CharT char_type;
23993  typedef _Traits traits_type;
23994 
23995 
23996  typedef _Alloc allocator_type;
23997  typedef typename traits_type::int_type int_type;
23998  typedef typename traits_type::pos_type pos_type;
23999  typedef typename traits_type::off_type off_type;
24000 
24001 
24002  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24003  typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24004  typedef basic_istream<char_type, traits_type> __istream_type;
24005 
24006  private:
24007  __stringbuf_type _M_stringbuf;
24008 
24009  public:
24010 # 307 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24011  explicit
24012  basic_istringstream(ios_base::openmode __mode = ios_base::in)
24013  : __istream_type(), _M_stringbuf(__mode | ios_base::in)
24014  { this->init(&_M_stringbuf); }
24015 # 325 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24016  explicit
24017  basic_istringstream(const __string_type& __str,
24018  ios_base::openmode __mode = ios_base::in)
24019  : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in)
24020  { this->init(&_M_stringbuf); }
24021 
24022 
24023 
24024 
24025 
24026 
24027 
24028  ~basic_istringstream()
24029  { }
24030 # 347 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24031  __stringbuf_type*
24032  rdbuf() const
24033  { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
24034 
24035 
24036 
24037 
24038 
24039  __string_type
24040  str() const
24041  { return _M_stringbuf.str(); }
24042 
24043 
24044 
24045 
24046 
24047 
24048 
24049  void
24050  str(const __string_type& __s)
24051  { _M_stringbuf.str(__s); }
24052  };
24053 # 386 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24054  template <typename _CharT, typename _Traits, typename _Alloc>
24055  class basic_ostringstream : public basic_ostream<_CharT, _Traits>
24056  {
24057  public:
24058 
24059  typedef _CharT char_type;
24060  typedef _Traits traits_type;
24061 
24062 
24063  typedef _Alloc allocator_type;
24064  typedef typename traits_type::int_type int_type;
24065  typedef typename traits_type::pos_type pos_type;
24066  typedef typename traits_type::off_type off_type;
24067 
24068 
24069  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24070  typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24071  typedef basic_ostream<char_type, traits_type> __ostream_type;
24072 
24073  private:
24074  __stringbuf_type _M_stringbuf;
24075 
24076  public:
24077 # 422 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24078  explicit
24079  basic_ostringstream(ios_base::openmode __mode = ios_base::out)
24080  : __ostream_type(), _M_stringbuf(__mode | ios_base::out)
24081  { this->init(&_M_stringbuf); }
24082 # 440 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24083  explicit
24084  basic_ostringstream(const __string_type& __str,
24085  ios_base::openmode __mode = ios_base::out)
24086  : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out)
24087  { this->init(&_M_stringbuf); }
24088 
24089 
24090 
24091 
24092 
24093 
24094 
24095  ~basic_ostringstream()
24096  { }
24097 # 462 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24098  __stringbuf_type*
24099  rdbuf() const
24100  { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
24101 
24102 
24103 
24104 
24105 
24106  __string_type
24107  str() const
24108  { return _M_stringbuf.str(); }
24109 
24110 
24111 
24112 
24113 
24114 
24115 
24116  void
24117  str(const __string_type& __s)
24118  { _M_stringbuf.str(__s); }
24119  };
24120 # 501 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24121  template <typename _CharT, typename _Traits, typename _Alloc>
24122  class basic_stringstream : public basic_iostream<_CharT, _Traits>
24123  {
24124  public:
24125 
24126  typedef _CharT char_type;
24127  typedef _Traits traits_type;
24128 
24129 
24130  typedef _Alloc allocator_type;
24131  typedef typename traits_type::int_type int_type;
24132  typedef typename traits_type::pos_type pos_type;
24133  typedef typename traits_type::off_type off_type;
24134 
24135 
24136  typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
24137  typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
24138  typedef basic_iostream<char_type, traits_type> __iostream_type;
24139 
24140  private:
24141  __stringbuf_type _M_stringbuf;
24142 
24143  public:
24144 # 536 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24145  explicit
24146  basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in)
24147  : __iostream_type(), _M_stringbuf(__m)
24148  { this->init(&_M_stringbuf); }
24149 # 552 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24150  explicit
24151  basic_stringstream(const __string_type& __str,
24152  ios_base::openmode __m = ios_base::out | ios_base::in)
24153  : __iostream_type(), _M_stringbuf(__str, __m)
24154  { this->init(&_M_stringbuf); }
24155 
24156 
24157 
24158 
24159 
24160 
24161 
24162  ~basic_stringstream()
24163  { }
24164 # 574 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 3
24165  __stringbuf_type*
24166  rdbuf() const
24167  { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
24168 
24169 
24170 
24171 
24172 
24173  __string_type
24174  str() const
24175  { return _M_stringbuf.str(); }
24176 
24177 
24178 
24179 
24180 
24181 
24182 
24183  void
24184  str(const __string_type& __s)
24185  { _M_stringbuf.str(__s); }
24186  };
24187 
24188 
24189 }
24190 
24191 
24192 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 1 3
24193 # 38 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 3
24194 
24195 namespace std __attribute__ ((__visibility__ ("default")))
24196 {
24197 
24198 
24199  template <class _CharT, class _Traits, class _Alloc>
24200  typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24201  basic_stringbuf<_CharT, _Traits, _Alloc>::
24202  pbackfail(int_type __c)
24203  {
24204  int_type __ret = traits_type::eof();
24205  if (this->eback() < this->gptr())
24206  {
24207 
24208 
24209  const bool __testeof = traits_type::eq_int_type(__c, __ret);
24210  if (!__testeof)
24211  {
24212  const bool __testeq = traits_type::eq(traits_type::
24213  to_char_type(__c),
24214  this->gptr()[-1]);
24215  const bool __testout = this->_M_mode & ios_base::out;
24216  if (__testeq || __testout)
24217  {
24218  this->gbump(-1);
24219  if (!__testeq)
24220  *this->gptr() = traits_type::to_char_type(__c);
24221  __ret = __c;
24222  }
24223  }
24224  else
24225  {
24226  this->gbump(-1);
24227  __ret = traits_type::not_eof(__c);
24228  }
24229  }
24230  return __ret;
24231  }
24232 
24233  template <class _CharT, class _Traits, class _Alloc>
24234  typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24235  basic_stringbuf<_CharT, _Traits, _Alloc>::
24236  overflow(int_type __c)
24237  {
24238  const bool __testout = this->_M_mode & ios_base::out;
24239  if (__builtin_expect(!__testout, false))
24240  return traits_type::eof();
24241 
24242  const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof());
24243  if (__builtin_expect(__testeof, false))
24244  return traits_type::not_eof(__c);
24245 
24246  const __size_type __capacity = _M_string.capacity();
24247  const __size_type __max_size = _M_string.max_size();
24248  const bool __testput = this->pptr() < this->epptr();
24249  if (__builtin_expect(!__testput && __capacity == __max_size, false))
24250  return traits_type::eof();
24251 
24252 
24253 
24254  const char_type __conv = traits_type::to_char_type(__c);
24255  if (!__testput)
24256  {
24257 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/sstream.tcc" 3
24258  const __size_type __opt_len = std::max(__size_type(2 * __capacity),
24259  __size_type(512));
24260  const __size_type __len = std::min(__opt_len, __max_size);
24261  __string_type __tmp;
24262  __tmp.reserve(__len);
24263  if (this->pbase())
24264  __tmp.assign(this->pbase(), this->epptr() - this->pbase());
24265  __tmp.push_back(__conv);
24266  _M_string.swap(__tmp);
24267  _M_sync(const_cast<char_type*>(_M_string.data()),
24268  this->gptr() - this->eback(), this->pptr() - this->pbase());
24269  }
24270  else
24271  *this->pptr() = __conv;
24272  this->pbump(1);
24273  return __c;
24274  }
24275 
24276  template <class _CharT, class _Traits, class _Alloc>
24277  typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
24278  basic_stringbuf<_CharT, _Traits, _Alloc>::
24279  underflow()
24280  {
24281  int_type __ret = traits_type::eof();
24282  const bool __testin = this->_M_mode & ios_base::in;
24283  if (__testin)
24284  {
24285 
24286  _M_update_egptr();
24287 
24288  if (this->gptr() < this->egptr())
24289  __ret = traits_type::to_int_type(*this->gptr());
24290  }
24291  return __ret;
24292  }
24293 
24294  template <class _CharT, class _Traits, class _Alloc>
24295  typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
24296  basic_stringbuf<_CharT, _Traits, _Alloc>::
24297  seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode)
24298  {
24299  pos_type __ret = pos_type(off_type(-1));
24300  bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
24301  bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
24302  const bool __testboth = __testin && __testout && __way != ios_base::cur;
24303  __testin &= !(__mode & ios_base::out);
24304  __testout &= !(__mode & ios_base::in);
24305 
24306 
24307 
24308  const char_type* __beg = __testin ? this->eback() : this->pbase();
24309  if ((__beg || !__off) && (__testin || __testout || __testboth))
24310  {
24311  _M_update_egptr();
24312 
24313  off_type __newoffi = __off;
24314  off_type __newoffo = __newoffi;
24315  if (__way == ios_base::cur)
24316  {
24317  __newoffi += this->gptr() - __beg;
24318  __newoffo += this->pptr() - __beg;
24319  }
24320  else if (__way == ios_base::end)
24321  __newoffo = __newoffi += this->egptr() - __beg;
24322 
24323  if ((__testin || __testboth)
24324  && __newoffi >= 0
24325  && this->egptr() - __beg >= __newoffi)
24326  {
24327  this->setg(this->eback(), this->eback() + __newoffi,
24328  this->egptr());
24329  __ret = pos_type(__newoffi);
24330  }
24331  if ((__testout || __testboth)
24332  && __newoffo >= 0
24333  && this->egptr() - __beg >= __newoffo)
24334  {
24335  _M_pbump(this->pbase(), this->epptr(), __newoffo);
24336  __ret = pos_type(__newoffo);
24337  }
24338  }
24339  return __ret;
24340  }
24341 
24342  template <class _CharT, class _Traits, class _Alloc>
24343  typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
24344  basic_stringbuf<_CharT, _Traits, _Alloc>::
24345  seekpos(pos_type __sp, ios_base::openmode __mode)
24346  {
24347  pos_type __ret = pos_type(off_type(-1));
24348  const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
24349  const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
24350 
24351  const char_type* __beg = __testin ? this->eback() : this->pbase();
24352  if ((__beg || !off_type(__sp)) && (__testin || __testout))
24353  {
24354  _M_update_egptr();
24355 
24356  const off_type __pos(__sp);
24357  const bool __testpos = (0 <= __pos
24358  && __pos <= this->egptr() - __beg);
24359  if (__testpos)
24360  {
24361  if (__testin)
24362  this->setg(this->eback(), this->eback() + __pos,
24363  this->egptr());
24364  if (__testout)
24365  _M_pbump(this->pbase(), this->epptr(), __pos);
24366  __ret = __sp;
24367  }
24368  }
24369  return __ret;
24370  }
24371 
24372  template <class _CharT, class _Traits, class _Alloc>
24373  void
24374  basic_stringbuf<_CharT, _Traits, _Alloc>::
24375  _M_sync(char_type* __base, __size_type __i, __size_type __o)
24376  {
24377  const bool __testin = _M_mode & ios_base::in;
24378  const bool __testout = _M_mode & ios_base::out;
24379  char_type* __endg = __base + _M_string.size();
24380  char_type* __endp = __base + _M_string.capacity();
24381 
24382  if (__base != _M_string.data())
24383  {
24384 
24385  __endg += __i;
24386  __i = 0;
24387  __endp = __endg;
24388  }
24389 
24390  if (__testin)
24391  this->setg(__base, __base + __i, __endg);
24392  if (__testout)
24393  {
24394  _M_pbump(__base, __endp, __o);
24395 
24396 
24397 
24398  if (!__testin)
24399  this->setg(__endg, __endg, __endg);
24400  }
24401  }
24402 
24403  template <class _CharT, class _Traits, class _Alloc>
24404  void
24405  basic_stringbuf<_CharT, _Traits, _Alloc>::
24406  _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off)
24407  {
24408  this->setp(__pbeg, __pend);
24409  while (__off > __gnu_cxx::__numeric_traits<int>::__max)
24410  {
24411  this->pbump(__gnu_cxx::__numeric_traits<int>::__max);
24412  __off -= __gnu_cxx::__numeric_traits<int>::__max;
24413  }
24414  this->pbump(__off);
24415  }
24416 
24417 
24418 
24419 
24420  extern template class basic_stringbuf<char>;
24421  extern template class basic_istringstream<char>;
24422  extern template class basic_ostringstream<char>;
24423  extern template class basic_stringstream<char>;
24424 
24425 
24426  extern template class basic_stringbuf<wchar_t>;
24427  extern template class basic_istringstream<wchar_t>;
24428  extern template class basic_ostringstream<wchar_t>;
24429  extern template class basic_stringstream<wchar_t>;
24430 
24431 
24432 
24433 
24434 }
24435 # 601 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/sstream" 2 3
24436 # 27 "./integral.hpp" 2
24437 
24438 # 1 "./algebra.hpp" 1
24439 # 24 "./algebra.hpp"
24440 # 1 "./function_alias_decl.hpp" 1
24441 # 25 "./algebra.hpp" 2
24442 # 1 "./chameleon.hpp" 1
24443 # 41 "./chameleon.hpp"
24444 namespace tml
24445 {
24446 
24447 
24448 
24449  struct value_chameleon
24450  {
24451  static constexpr const int value = 0;
24452  };
24453 
24454 
24455 
24456 
24457  struct function_chameleon
24458  {
24459  struct result {};
24460  };
24461 
24462 
24463 
24464 
24465 
24466  struct not_evaluated_function_chameleon : public tml::value_chameleon , public tml::function_chameleon
24467  {};
24468 }
24469 # 26 "./algebra.hpp" 2
24470 # 1 "./function.hpp" 1
24471 # 26 "./function.hpp"
24472 namespace tml
24473 {
24474  namespace impl
24475  {
24476 # 38 "./function.hpp"
24477  template<typename T>
24478  struct is_turbo_function
24479  {
24480  template<typename U> static std::true_type test( typename U::result* );
24481  template<typename U> static std::false_type test( ... );
24482 
24483  static constexpr bool result = decltype( test<T>( nullptr ) )::value;
24484  };
24485 # 55 "./function.hpp"
24486  template<typename T>
24487  struct is_stl_function
24488  {
24489  template<typename U> static std::true_type test( typename U::type* );
24490  template<typename U> static std::false_type test( ... );
24491 
24492  static constexpr bool result = decltype( test<T>( nullptr ) )::value;
24493  };
24494 # 72 "./function.hpp"
24495  template<typename T>
24496  struct is_function
24497  {
24499  };
24500 
24501 
24502 
24503 
24504 
24505  template<typename T, T V>
24506  struct is_function<std::integral_constant<T,V>>
24507  {
24508  static constexpr bool result = false;
24509  };
24510  }
24511 
24512 
24513 
24514 
24515 
24516 
24517  template<typename E>
24518  using is_function = std::integral_constant<bool,tml::impl::is_function<E>::result>;
24519 
24520 
24521 
24522 
24523 
24524 
24525  template<typename E>
24526  using is_turbo_function = std::integral_constant<bool,tml::impl::is_turbo_function<E>::result>;
24527 
24528 
24529 
24530 
24531 
24532 
24533  template<typename E>
24534  using is_stl_function = std::integral_constant<bool,tml::impl::is_stl_function<E>::result>;
24535 # 123 "./function.hpp"
24536  template<typename RESULT>
24537  struct function
24538  {
24539  using result = RESULT;
24540  };
24541 }
24542 # 27 "./algebra.hpp" 2
24543 # 41 "./algebra.hpp"
24544 namespace tml
24545 {
24546 
24547 
24548 
24549 
24550  namespace impl
24551  {
24552  template<typename T>
24553  struct zero;
24554 
24555  template<typename T>
24556  struct one;
24557 
24558  template<typename T>
24559  struct sign;
24560  }
24561 
24562  namespace func
24563  {
24564 
24565 
24566 
24567  template<typename T>
24568  using zero = tml::impl::zero<T>;
24569 
24570 
24571 
24572 
24573  template<typename T>
24574  using one = tml::impl::one<T>;
24575 
24576 
24577 
24578 
24579 
24580  template<typename T>
24581  using sign = tml::impl::sign<T>;
24582  }
24583 
24584 
24585 
24586 
24587  template<typename T>
24588  using zero = typename tml::func::zero<T>::result;
24589 
24590 
24591 
24592 
24593  template<typename T>
24594  using one = typename tml::func::one<T>::result;
24595 
24596 
24597 
24598 
24599 
24600  template<typename T>
24601  using sign = typename tml::func::sign<T>::result;
24602 
24603 
24604 
24605 
24606 
24607  template<typename T>
24608  struct opposite : public tml::not_evaluated_function_chameleon
24609  {};
24610 
24611 
24612 
24613 
24614  template<typename T>
24615  struct abs : public tml::not_evaluated_function_chameleon
24616  {};
24617 # 122 "./algebra.hpp"
24618  template<typename LHS , typename RHS>
24619  struct add : public tml::not_evaluated_function_chameleon
24620  {};
24621 
24622 
24623 
24624 
24625  template<typename LHS , typename RHS>
24626  struct sub : public tml::not_evaluated_function_chameleon
24627  {};
24628 
24629 
24630 
24631 
24632  template<typename LHS , typename RHS>
24633  struct mul : public tml::not_evaluated_function_chameleon
24634  {};
24635 
24636 
24637 
24638 
24639  template<typename LHS , typename RHS>
24640  struct div : public tml::not_evaluated_function_chameleon
24641  {};
24642 
24643 
24644 
24645 
24646 
24647 
24648 
24649  template<typename LHS , typename RHS>
24650  struct logical_or : public tml::not_evaluated_function_chameleon
24651  {};
24652 
24653 
24654 
24655 
24656  template<typename LHS , typename RHS>
24657  struct logical_and : public tml::not_evaluated_function_chameleon
24658  {};
24659 
24660 
24661 
24662 
24663  template<typename OP>
24664  struct logical_not : public tml::not_evaluated_function_chameleon
24665  {};
24666 # 179 "./algebra.hpp"
24667  template<typename LHS , typename RHS>
24668  struct equal : public tml::not_evaluated_function_chameleon
24669  {};
24670 
24671 
24672 
24673 
24674 
24675 
24676  template<typename LHS , typename RHS>
24677  struct not_equal : public tml::logical_not<typename tml::equal<LHS,RHS>::result>
24678  {};
24679 
24680 
24681 
24682 
24683 
24684 
24685 
24686  template<typename LHS , typename RHS>
24687  struct less_than : public tml::not_evaluated_function_chameleon
24688  {};
24689 
24690 
24691 
24692 
24693 
24694 
24695 
24696  template<typename LHS , typename RHS>
24697  struct less_or_equal : public tml::logical_or<typename tml::less_than<LHS,RHS>::result,
24698  typename tml::equal<LHS,RHS>::result>
24699  {};
24700 
24701 
24702 
24703 
24704 
24705 
24706 
24707  template<typename LHS , typename RHS>
24708  struct bigger_than : public tml::less_than<RHS,LHS>
24709  {};
24710 
24711 
24712 
24713 
24714 
24715 
24716 
24717  template<typename LHS , typename RHS>
24718  struct bigger_or_equal : public tml::less_or_equal<RHS,LHS>
24719  {};
24720 }
24721 # 29 "./integral.hpp" 2
24722 
24723 # 1 "./to_string.hpp" 1
24724 # 55 "./to_string.hpp"
24725 # 1 "./impl/demangle.hpp" 1
24726 # 26 "./impl/demangle.hpp"
24727 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 1 3
24728 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24729 
24730 
24731 
24732 
24733 
24734 
24735 #pragma GCC visibility push(default)
24736 
24737 extern "C++" {
24738 
24739 namespace __cxxabiv1
24740 {
24741  class __class_type_info;
24742 }
24743 # 80 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24744 namespace std
24745 {
24746 
24747 
24748 
24749 
24750 
24751 
24752  class type_info
24753  {
24754  public:
24755 
24756 
24757 
24758 
24759  virtual ~type_info();
24760 
24761 
24762 
24763  const char* name() const noexcept
24764  { return __name[0] == '*' ? __name + 1 : __name; }
24765 # 115 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24766  bool before(const type_info& __arg) const noexcept
24767  { return (__name[0] == '*' && __arg.__name[0] == '*')
24768  ? __name < __arg.__name
24769  : __builtin_strcmp (__name, __arg.__name) < 0; }
24770 
24771  bool operator==(const type_info& __arg) const noexcept
24772  {
24773  return ((__name == __arg.__name)
24774  || (__name[0] != '*' &&
24775  __builtin_strcmp (__name, __arg.__name) == 0));
24776  }
24777 # 136 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/typeinfo" 3
24778  bool operator!=(const type_info& __arg) const noexcept
24779  { return !operator==(__arg); }
24780 
24781 
24782  size_t hash_code() const noexcept
24783  {
24784 
24785  return _Hash_bytes(name(), __builtin_strlen(name()),
24786  static_cast<size_t>(0xc70f6907UL));
24787 
24788 
24789 
24790  }
24791 
24792 
24793 
24794  virtual bool __is_pointer_p() const;
24795 
24796 
24797  virtual bool __is_function_p() const;
24798 
24799 
24800 
24801 
24802 
24803 
24804 
24805  virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
24806  unsigned __outer) const;
24807 
24808 
24809  virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
24810  void **__obj_ptr) const;
24811 
24812  protected:
24813  const char *__name;
24814 
24815  explicit type_info(const char *__n): __name(__n) { }
24816 
24817  private:
24818 
24819  type_info& operator=(const type_info&);
24820  type_info(const type_info&);
24821  };
24822 
24823 
24824 
24825 
24826 
24827 
24828 
24829  class bad_cast : public exception
24830  {
24831  public:
24832  bad_cast() noexcept { }
24833 
24834 
24835 
24836  virtual ~bad_cast() noexcept;
24837 
24838 
24839  virtual const char* what() const noexcept;
24840  };
24841 
24842 
24843 
24844 
24845 
24846  class bad_typeid : public exception
24847  {
24848  public:
24849  bad_typeid () noexcept { }
24850 
24851 
24852 
24853  virtual ~bad_typeid() noexcept;
24854 
24855 
24856  virtual const char* what() const noexcept;
24857  };
24858 }
24859 
24860 }
24861 
24862 #pragma GCC visibility pop
24863 # 27 "./impl/demangle.hpp" 2
24864 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 1 3
24865 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 3
24866 
24867 
24868 
24869 
24870 
24871 
24872 
24873 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 1 3
24874 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24875 
24876 
24877 
24878 namespace std __attribute__ ((__visibility__ ("default")))
24879 {
24880 # 47 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24881  template<typename _Tp, typename _CharT = char,
24882  typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
24883  class istream_iterator
24884  : public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, const _Tp&>
24885  {
24886  public:
24887  typedef _CharT char_type;
24888  typedef _Traits traits_type;
24889  typedef basic_istream<_CharT, _Traits> istream_type;
24890 
24891  private:
24892  istream_type* _M_stream;
24893  _Tp _M_value;
24894  bool _M_ok;
24895 
24896  public:
24897 
24898  constexpr istream_iterator()
24899  : _M_stream(0), _M_value(), _M_ok(false) {}
24900 
24901 
24902  istream_iterator(istream_type& __s)
24903  : _M_stream(&__s)
24904  { _M_read(); }
24905 
24906  istream_iterator(const istream_iterator& __obj)
24907  : _M_stream(__obj._M_stream), _M_value(__obj._M_value),
24908  _M_ok(__obj._M_ok)
24909  { }
24910 
24911  const _Tp&
24912  operator*() const
24913  {
24914 
24915 
24916  ;
24917  return _M_value;
24918  }
24919 
24920  const _Tp*
24921  operator->() const { return &(operator*()); }
24922 
24923  istream_iterator&
24924  operator++()
24925  {
24926 
24927 
24928  ;
24929  _M_read();
24930  return *this;
24931  }
24932 
24933  istream_iterator
24934  operator++(int)
24935  {
24936 
24937 
24938  ;
24939  istream_iterator __tmp = *this;
24940  _M_read();
24941  return __tmp;
24942  }
24943 
24944  bool
24945  _M_equal(const istream_iterator& __x) const
24946  { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); }
24947 
24948  private:
24949  void
24950  _M_read()
24951  {
24952  _M_ok = (_M_stream && *_M_stream) ? true : false;
24953  if (_M_ok)
24954  {
24955  *_M_stream >> _M_value;
24956  _M_ok = *_M_stream ? true : false;
24957  }
24958  }
24959  };
24960 
24961 
24962  template<typename _Tp, typename _CharT, typename _Traits, typename _Dist>
24963  inline bool
24964  operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
24965  const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
24966  { return __x._M_equal(__y); }
24967 
24968 
24969  template <class _Tp, class _CharT, class _Traits, class _Dist>
24970  inline bool
24971  operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
24972  const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
24973  { return !__x._M_equal(__y); }
24974 # 152 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24975  template<typename _Tp, typename _CharT = char,
24976  typename _Traits = char_traits<_CharT> >
24977  class ostream_iterator
24978  : public iterator<output_iterator_tag, void, void, void, void>
24979  {
24980  public:
24981 
24982 
24983  typedef _CharT char_type;
24984  typedef _Traits traits_type;
24985  typedef basic_ostream<_CharT, _Traits> ostream_type;
24986 
24987 
24988  private:
24989  ostream_type* _M_stream;
24990  const _CharT* _M_string;
24991 
24992  public:
24993 
24994  ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {}
24995 # 183 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stream_iterator.h" 3
24996  ostream_iterator(ostream_type& __s, const _CharT* __c)
24997  : _M_stream(&__s), _M_string(__c) { }
24998 
24999 
25000  ostream_iterator(const ostream_iterator& __obj)
25001  : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
25002 
25003 
25004 
25005  ostream_iterator&
25006  operator=(const _Tp& __value)
25007  {
25008 
25009 
25010  ;
25011  *_M_stream << __value;
25012  if (_M_string) *_M_stream << _M_string;
25013  return *this;
25014  }
25015 
25016  ostream_iterator&
25017  operator*()
25018  { return *this; }
25019 
25020  ostream_iterator&
25021  operator++()
25022  { return *this; }
25023 
25024  ostream_iterator&
25025  operator++(int)
25026  { return *this; }
25027  };
25028 
25029 
25030 
25031 
25032 }
25033 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/iterator" 2 3
25034 # 28 "./impl/demangle.hpp" 2
25035 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
25036 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
25037 # 29 "./impl/demangle.hpp" 2
25038 # 65 "./impl/demangle.hpp"
25039 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 1 3
25040 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25041 
25042 #pragma GCC visibility push(default)
25043 
25044 
25045 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3
25046 # 49 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 2 3
25047 
25048 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 1 3
25049 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 3
25050 namespace __cxxabiv1
25051 {
25052  extern "C"
25053  {
25054 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h" 3
25055  __extension__ typedef int __guard __attribute__((mode (__DI__)));
25056 
25057 
25058  typedef void __cxa_vec_ctor_return_type;
25059 
25060 
25061  typedef void __cxa_cdtor_return_type;
25062 
25063 
25064  }
25065 }
25066 # 51 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 2 3
25067 
25068 
25069 
25070 
25071 
25072 
25073 
25074 namespace __cxxabiv1
25075 {
25076  extern "C"
25077  {
25078 
25079 
25080  typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
25081 
25082 
25083  void*
25084  __cxa_vec_new(size_t __element_count, size_t __element_size,
25085  size_t __padding_size, __cxa_cdtor_type __constructor,
25086  __cxa_cdtor_type __destructor);
25087 
25088  void*
25089  __cxa_vec_new2(size_t __element_count, size_t __element_size,
25090  size_t __padding_size, __cxa_cdtor_type __constructor,
25091  __cxa_cdtor_type __destructor, void *(*__alloc) (size_t),
25092  void (*__dealloc) (void*));
25093 
25094  void*
25095  __cxa_vec_new3(size_t __element_count, size_t __element_size,
25096  size_t __padding_size, __cxa_cdtor_type __constructor,
25097  __cxa_cdtor_type __destructor, void *(*__alloc) (size_t),
25098  void (*__dealloc) (void*, size_t));
25099 
25100 
25101  __cxa_vec_ctor_return_type
25102  __cxa_vec_ctor(void* __array_address, size_t __element_count,
25103  size_t __element_size, __cxa_cdtor_type __constructor,
25104  __cxa_cdtor_type __destructor);
25105 
25106  __cxa_vec_ctor_return_type
25107  __cxa_vec_cctor(void* __dest_array, void* __src_array,
25108  size_t __element_count, size_t __element_size,
25109  __cxa_cdtor_return_type (*__constructor) (void*, void*),
25110  __cxa_cdtor_type __destructor);
25111 
25112 
25113  void
25114  __cxa_vec_dtor(void* __array_address, size_t __element_count,
25115  size_t __element_size, __cxa_cdtor_type __destructor);
25116 
25117  void
25118  __cxa_vec_cleanup(void* __array_address, size_t __element_count, size_t __s,
25119  __cxa_cdtor_type __destructor) noexcept;
25120 
25121 
25122  void
25123  __cxa_vec_delete(void* __array_address, size_t __element_size,
25124  size_t __padding_size, __cxa_cdtor_type __destructor);
25125 
25126  void
25127  __cxa_vec_delete2(void* __array_address, size_t __element_size,
25128  size_t __padding_size, __cxa_cdtor_type __destructor,
25129  void (*__dealloc) (void*));
25130 
25131  void
25132  __cxa_vec_delete3(void* __array_address, size_t __element_size,
25133  size_t __padding_size, __cxa_cdtor_type __destructor,
25134  void (*__dealloc) (void*, size_t));
25135 
25136  int
25137  __cxa_guard_acquire(__guard*);
25138 
25139  void
25140  __cxa_guard_release(__guard*) noexcept;
25141 
25142  void
25143  __cxa_guard_abort(__guard*) noexcept;
25144 
25145 
25146  int
25147  __cxa_atexit(void (*)(void*), void*, void*) noexcept;
25148 
25149  int
25150  __cxa_finalize(void*);
25151 
25152 
25153  int
25154  __cxa_thread_atexit(void (*)(void*), void*, void *) noexcept;
25155 
25156 
25157  void
25158  __cxa_pure_virtual(void) __attribute__ ((__noreturn__));
25159 
25160  void
25161  __cxa_deleted_virtual(void) __attribute__ ((__noreturn__));
25162 
25163 
25164  void
25165  __cxa_bad_cast() __attribute__((__noreturn__));
25166 
25167  void
25168  __cxa_bad_typeid() __attribute__((__noreturn__));
25169 
25170  void
25171  __cxa_throw_bad_array_new_length() __attribute__((__noreturn__));
25172 
25173  void
25174  __cxa_throw_bad_array_length() __attribute__((__noreturn__));
25175 # 200 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25176  char*
25177  __cxa_demangle(const char* __mangled_name, char* __output_buffer,
25178  size_t* __length, int* __status);
25179 
25180 
25181  }
25182 }
25183 
25184 
25185 
25186 
25187 
25188 
25189 namespace __cxxabiv1
25190 {
25191 
25193  {
25194  public:
25195  explicit
25196  __fundamental_type_info(const char* __n) : std::type_info(__n) { }
25197 
25198  virtual
25200  };
25201 
25202 
25204  {
25205  public:
25206  explicit
25207  __array_type_info(const char* __n) : std::type_info(__n) { }
25208 
25209  virtual
25210  ~__array_type_info();
25211  };
25212 
25213 
25215  {
25216  public:
25217  explicit
25218  __function_type_info(const char* __n) : std::type_info(__n) { }
25219 
25220  virtual
25222 
25223  protected:
25224 
25225  virtual bool
25226  __is_function_p() const;
25227  };
25228 
25229 
25231  {
25232  public:
25233  explicit
25234  __enum_type_info(const char* __n) : std::type_info(__n) { }
25235 
25236  virtual
25237  ~__enum_type_info();
25238  };
25239 
25240 
25242  {
25243  public:
25244  unsigned int __flags;
25245  const std::type_info* __pointee;
25246 
25247  explicit
25248  __pbase_type_info(const char* __n, int __quals,
25249  const std::type_info* __type)
25250  : std::type_info(__n), __flags(__quals), __pointee(__type)
25251  { }
25252 
25253  virtual
25254  ~__pbase_type_info();
25255 
25256 
25257  enum __masks
25258  {
25259  __const_mask = 0x1,
25260  __volatile_mask = 0x2,
25261  __restrict_mask = 0x4,
25262  __incomplete_mask = 0x8,
25263  __incomplete_class_mask = 0x10
25264  };
25265 
25266  protected:
25268 
25270  operator=(const __pbase_type_info&);
25271 
25272 
25273  virtual bool
25274  __do_catch(const std::type_info* __thr_type, void** __thr_obj,
25275  unsigned int __outer) const;
25276 
25277  inline virtual bool
25278  __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
25279  unsigned __outer) const;
25280  };
25281 
25282 
25284  {
25285  public:
25286  explicit
25287  __pointer_type_info(const char* __n, int __quals,
25288  const std::type_info* __type)
25289  : __pbase_type_info (__n, __quals, __type) { }
25290 
25291 
25292  virtual
25294 
25295  protected:
25296 
25297  virtual bool
25298  __is_pointer_p() const;
25299 
25300  virtual bool
25301  __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
25302  unsigned __outer) const;
25303  };
25304 
25305  class __class_type_info;
25306 
25307 
25309  {
25310  public:
25311  __class_type_info* __context;
25312 
25313  explicit
25314  __pointer_to_member_type_info(const char* __n, int __quals,
25315  const std::type_info* __type,
25316  __class_type_info* __klass)
25317  : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
25318 
25319  virtual
25321 
25322  protected:
25324 
25326  operator=(const __pointer_to_member_type_info&);
25327 
25328 
25329  virtual bool
25330  __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
25331  unsigned __outer) const;
25332  };
25333 
25334 
25336  {
25337  public:
25338  const __class_type_info* __base_type;
25339 
25340 
25341 
25342  long __offset_flags;
25343 
25344 
25345  enum __offset_flags_masks
25346  {
25347  __virtual_mask = 0x1,
25348  __public_mask = 0x2,
25349  __hwm_bit = 2,
25350  __offset_shift = 8
25351  };
25352 
25353 
25354  bool
25355  __is_virtual_p() const
25356  { return __offset_flags & __virtual_mask; }
25357 
25358  bool
25359  __is_public_p() const
25360  { return __offset_flags & __public_mask; }
25361 
25362  ptrdiff_t
25363  __offset() const
25364  {
25365 
25366 
25367 
25368  return static_cast<ptrdiff_t>(__offset_flags) >> __offset_shift;
25369  }
25370  };
25371 
25372 
25374  {
25375  public:
25376  explicit
25377  __class_type_info (const char *__n) : type_info(__n) { }
25378 
25379  virtual
25380  ~__class_type_info ();
25381 
25382 
25383 
25384 
25385 
25386 
25387  enum __sub_kind
25388  {
25389 
25390  __unknown = 0,
25391 
25392 
25393 
25394  __not_contained,
25395 
25396 
25397  __contained_ambig,
25398 
25399 
25400  __contained_virtual_mask = __base_class_type_info::__virtual_mask,
25401 
25402 
25403  __contained_public_mask = __base_class_type_info::__public_mask,
25404 
25405 
25406  __contained_mask = 1 << __base_class_type_info::__hwm_bit,
25407 
25408  __contained_private = __contained_mask,
25409  __contained_public = __contained_mask | __contained_public_mask
25410  };
25411 
25412  struct __upcast_result;
25413  struct __dyncast_result;
25414 
25415  protected:
25416 
25417  virtual bool
25418  __do_upcast(const __class_type_info* __dst_type, void**__obj_ptr) const;
25419 
25420  virtual bool
25421  __do_catch(const type_info* __thr_type, void** __thr_obj,
25422  unsigned __outer) const;
25423 
25424  public:
25425 
25426 
25427  virtual bool
25428  __do_upcast(const __class_type_info* __dst, const void* __obj,
25429  __upcast_result& __restrict __result) const;
25430 
25431 
25432 
25433 
25434 
25435 
25436 
25437  inline __sub_kind
25438  __find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
25439  const __class_type_info* __src_type,
25440  const void* __src_ptr) const;
25441 # 473 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25442  virtual bool
25443  __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25444  const __class_type_info* __dst_type, const void* __obj_ptr,
25445  const __class_type_info* __src_type, const void* __src_ptr,
25446  __dyncast_result& __result) const;
25447 
25448 
25449 
25450 
25451 
25452  virtual __sub_kind
25453  __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
25454  const __class_type_info* __src_type,
25455  const void* __src_ptr) const;
25456  };
25457 
25458 
25460  {
25461  public:
25462  const __class_type_info* __base_type;
25463 
25464  explicit
25465  __si_class_type_info(const char *__n, const __class_type_info *__base)
25466  : __class_type_info(__n), __base_type(__base) { }
25467 
25468  virtual
25470 
25471  protected:
25473 
25475  operator=(const __si_class_type_info&);
25476 
25477 
25478  virtual bool
25479  __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25480  const __class_type_info* __dst_type, const void* __obj_ptr,
25481  const __class_type_info* __src_type, const void* __src_ptr,
25482  __dyncast_result& __result) const;
25483 
25484  virtual __sub_kind
25485  __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
25486  const __class_type_info* __src_type,
25487  const void* __sub_ptr) const;
25488 
25489  virtual bool
25490  __do_upcast(const __class_type_info*__dst, const void*__obj,
25491  __upcast_result& __restrict __result) const;
25492  };
25493 
25494 
25496  {
25497  public:
25498  unsigned int __flags;
25499  unsigned int __base_count;
25500 
25501 
25502 
25503 
25504  __base_class_type_info __base_info[1];
25505 
25506  explicit
25507  __vmi_class_type_info(const char* __n, int ___flags)
25508  : __class_type_info(__n), __flags(___flags), __base_count(0) { }
25509 
25510  virtual
25512 
25513 
25514  enum __flags_masks
25515  {
25516  __non_diamond_repeat_mask = 0x1,
25517  __diamond_shaped_mask = 0x2,
25518  __flags_unknown_mask = 0x10
25519  };
25520 
25521  protected:
25522 
25523  virtual bool
25524  __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
25525  const __class_type_info* __dst_type, const void* __obj_ptr,
25526  const __class_type_info* __src_type, const void* __src_ptr,
25527  __dyncast_result& __result) const;
25528 
25529  virtual __sub_kind
25530  __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
25531  const __class_type_info* __src_type,
25532  const void* __src_ptr) const;
25533 
25534  virtual bool
25535  __do_upcast(const __class_type_info* __dst, const void* __obj,
25536  __upcast_result& __restrict __result) const;
25537  };
25538 
25539 
25540  struct __cxa_exception;
25541  struct __cxa_refcounted_exception;
25542  struct __cxa_dependent_exception;
25543  struct __cxa_eh_globals;
25544 
25545  extern "C"
25546  {
25547 # 586 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25548  void*
25549  __dynamic_cast(const void* __src_ptr,
25550  const __class_type_info* __src_type,
25551  const __class_type_info* __dst_type,
25552  ptrdiff_t __src2dst);
25553 # 599 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25554  __cxa_eh_globals*
25555  __cxa_get_globals() noexcept __attribute__ ((__const__));
25556 
25557  __cxa_eh_globals*
25558  __cxa_get_globals_fast() noexcept __attribute__ ((__const__));
25559 
25560 
25561  void*
25562  __cxa_allocate_exception(size_t) noexcept;
25563 
25564 
25565  void
25566  __cxa_free_exception(void*) noexcept;
25567 
25568 
25569  void
25570  __cxa_throw(void*, std::type_info*, void ( *) (void *))
25571  __attribute__((__noreturn__));
25572 
25573 
25574  void*
25575  __cxa_get_exception_ptr(void*) noexcept __attribute__ ((__pure__));
25576 
25577  void*
25578  __cxa_begin_catch(void*) noexcept;
25579 
25580  void
25581  __cxa_end_catch();
25582 
25583  void
25584  __cxa_rethrow() __attribute__((__noreturn__));
25585 
25586 
25587 
25588  std::type_info*
25589  __cxa_current_exception_type() noexcept __attribute__ ((__pure__));
25590 
25591 
25592 
25593 
25594  __cxa_dependent_exception*
25595  __cxa_allocate_dependent_exception() noexcept;
25596 
25597 
25598  void
25599  __cxa_free_dependent_exception(__cxa_dependent_exception*) noexcept;
25600 
25601  }
25602 
25603 
25604 
25606  {
25607  virtual ~__foreign_exception() throw();
25608  virtual void __pure_dummy() = 0;
25609  };
25610 
25611 }
25612 # 678 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25613 namespace abi = __cxxabiv1;
25614 
25615 namespace __gnu_cxx
25616 {
25617 # 694 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cxxabi.h" 3
25619  {
25620  public:
25621  recursive_init_error() throw() { }
25622  virtual ~recursive_init_error() throw ();
25623  };
25624 }
25625 
25626 
25627 #pragma GCC visibility pop
25628 # 66 "./impl/demangle.hpp" 2
25629 
25630  namespace tml{
25631  namespace impl{
25632 
25633 
25634  std::string demangle( const std::string& name )
25635  {
25636  int status;
25637 
25638  char* demangled_name = abi::__cxa_demangle( name.c_str() , 0 , 0 , &status );
25639 
25640  if( status != 0 )
25641  throw;
25642 
25643  std::string result{ demangled_name };
25644 
25645  std::free( demangled_name );
25646 
25647 
25648  return result;
25649  }
25650 # 97 "./impl/demangle.hpp"
25651 }}
25652 # 56 "./to_string.hpp" 2
25653 
25654 namespace tml
25655 {
25656  namespace impl
25657  {
25658 
25659 
25660 
25661  template<typename T>
25662  struct to_string
25663  {
25664  operator std::string() const
25665  {
25666  return tml::impl::demangle( typeid( T ).name() );
25667  }
25668  };
25669  }
25670 
25671  template<typename T>
25672  std::string to_string()
25673  {
25674  return tml::impl::to_string<T>{};
25675  }
25676 
25677  template<typename T>
25678  std::string to_string( const T& )
25679  {
25680  return tml::to_string<T>();
25681  }
25682 }
25683 # 31 "./integral.hpp" 2
25684 # 1 "./to_runtime.hpp" 1
25685 # 38 "./to_runtime.hpp"
25686 namespace tml
25687 {
25688  namespace impl
25689  {
25690  template<typename T>
25691  struct to_runtime
25692  {
25693  static_assert( sizeof(T) != sizeof(T) , "You should write a custom to runtime conversion for your type" );
25694  };
25695 
25696 
25697 
25698 
25699  template<typename T>
25700  struct runtime_representation
25701  {
25702  static_assert( sizeof(T) != sizeof(T) , "You should specify the runtime representation of your type" );
25703  };
25704  }
25705 
25706 
25707 
25708 
25709  namespace func
25710  {
25711  template<typename T>
25712  using runtime_representation = tml::impl::runtime_representation<T>;
25713  }
25714 # 77 "./to_runtime.hpp"
25715  template<typename T>
25716  using runtime_representation = typename tml::impl::runtime_representation<T>::result;
25717 
25718 
25719 
25720 
25721  template<typename T>
25722  auto to_runtime() -> decltype( tml::impl::to_runtime<T>::execute() )
25723  {
25725  }
25726 }
25727 # 32 "./integral.hpp" 2
25728 # 82 "./integral.hpp"
25729 namespace tml
25730 {
25731 
25732 
25733 
25734  template<typename T , T V>
25735  using integral_constant = std::integral_constant<T,V>;
25736 
25737 
25738 
25739 
25740  template<typename T , T V>
25741  struct opposite<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,-V>>
25742  {};
25743 
25744 
25745 
25746 
25747  template<typename T , T V>
25748  struct abs<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,((V < 0) ? -V : V)>>
25749  {};
25750 
25751  namespace impl
25752  {
25753 
25754 
25755 
25756  template<typename T , T V>
25757  struct zero<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,0>>
25758  {};
25759 
25760  template<typename T , T V>
25761  struct one<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<T,1>>
25762  {};
25763 
25764 
25765 
25766 
25767  template<typename T , T V>
25768  struct sign<tml::integral_constant<T,V>> : public tml::function<tml::integral_constant<bool,(V >= 0)>>
25769  {};
25770 
25771 
25772 
25773 
25774 
25775  template<typename T , T V>
25776  struct to_string<tml::integral_constant<T,V>>
25777  {
25778  operator std::string() const
25779  {
25780  return std::to_string( V );
25781  }
25782  };
25783 
25784 
25785 
25786 
25787  template<bool V>
25788  struct to_string<tml::integral_constant<bool,V>>
25789  {
25790  operator std::string() const
25791  {
25792  std::stringstream ss;
25793 
25794  ss << std::boolalpha << V;
25795 
25796  return ss.str();
25797  }
25798  };
25799 
25800 
25801 
25802 
25803  template<char V>
25804  struct to_string<tml::integral_constant<char,V>>
25805  {
25806  operator std::string() const
25807  {
25808  std::stringstream ss;
25809 
25810  ss << V;
25811 
25812  return ss.str();
25813  }
25814  };
25815 
25816 
25817 
25818 
25819 
25820  template<typename T , T V>
25821  struct runtime_representation<tml::integral_constant<T,V>> : public tml::function<T>
25822  {};
25823 
25824  template<typename T , T V>
25825  struct to_runtime<tml::integral_constant<T,V>>
25826  {
25827  static constexpr T execute()
25828  {
25829  return V;
25830  }
25831  };
25832  }
25833 
25834 
25835 
25836 
25837  using true_type = std::true_type;
25838  using false_type = std::false_type;
25839 
25840 
25841 
25842 
25843  template<std::size_t V>
25844  using size_t = tml::integral_constant<std::size_t,V>;
25845 
25846 
25847 
25848 
25849 
25850 
25851 
25852  namespace basic_types_declarations
25853  {
25854 
25855 
25856 
25857 
25858 
25859 
25860  using True = tml::true_type;
25861  using False = tml::false_type;
25862 
25863  template<char V>
25864  using Char = tml::integral_constant<char,V>;
25865  template<int V>
25866  using Int = tml::integral_constant<int,V>;
25867  template<bool V>
25868  using Bool = tml::integral_constant<bool,V>;
25869 
25870  template<unsigned char V>
25871  using UnsignedChar = tml::integral_constant<unsigned char,V>;
25872  template<unsigned int V>
25873  using UnsignedInt = tml::integral_constant<unsigned int,V>;
25874 
25875  template<long int V>
25876  using LongInt = tml::integral_constant<long int,V>;
25877  template<long long int V>
25878  using LongLongInt = tml::integral_constant<long long int,V>;
25879 
25880  template<unsigned long int V>
25881  using UnsignedLongInt = tml::integral_constant<unsigned long int,V>;
25882  template<unsigned long long int V>
25883  using UnsignedLongLongInt = tml::integral_constant<unsigned long long int,V>;
25884 
25885 
25886 
25887 
25888 
25889 
25890  template<char V>
25891  using character = tml::integral_constant<char,V>;
25892  template<int V>
25893  using integer = tml::integral_constant<int,V>;
25894  template<bool V>
25895  using boolean = tml::integral_constant<bool,V>;
25896 
25897  template<unsigned char V>
25898  using unsigned_character = tml::integral_constant<unsigned char,V>;
25899  template<unsigned int V>
25900  using unsigned_integer = tml::integral_constant<unsigned int,V>;
25901 
25902  template<long int V>
25903  using long_integer = tml::integral_constant<long int,V>;
25904  template<long long int V>
25905  using long_long_integer = tml::integral_constant<long long int,V>;
25906 
25907  template<unsigned long int V>
25908  using unsigned_long_integer = tml::integral_constant<unsigned long int,V>;
25909  template<unsigned long long int V>
25910  using unsigned_long_long_integer = tml::integral_constant<unsigned long long int,V>;
25911 
25912  template<unsigned char V>
25913  using ucharacter = tml::integral_constant<unsigned char,V>;
25914  template<unsigned int V>
25915  using uinteger = tml::integral_constant<unsigned int,V>;
25916 
25917  template<long int V>
25918  using linteger = tml::integral_constant<long int,V>;
25919  template<long long int V>
25920  using llinteger = tml::integral_constant<long long int,V>;
25921 
25922  template<unsigned long int V>
25923  using ulinteger = tml::integral_constant<unsigned long int,V>;
25924  template<unsigned long long int V>
25925  using ullinteger = tml::integral_constant<unsigned long long int,V>;
25926  }
25927 
25928  using namespace tml::basic_types_declarations;
25929 }
25930 
25931 using namespace tml::basic_types_declarations;
25932 
25933 
25934 
25935 
25936 namespace tml
25937 {
25938  template<typename TLHS , TLHS VLHS ,
25939  typename TRHS , TRHS VRHS>
25940  struct add<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25941  public tml::function<tml::integral_constant<decltype(VLHS + VRHS),VLHS + VRHS>>
25942  {};
25943 
25944  template<typename TLHS , TLHS VLHS ,
25945  typename TRHS , TRHS VRHS>
25946  struct sub<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25947  public tml::function<tml::integral_constant<decltype(VLHS - VRHS),VLHS - VRHS>>
25948  {};
25949 
25950  template<typename TLHS , TLHS VLHS ,
25951  typename TRHS , TRHS VRHS>
25952  struct mul<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25953  public tml::function<tml::integral_constant<decltype(VLHS * VRHS),VLHS * VRHS>>
25954  {};
25955 
25956  template<typename TLHS , TLHS VLHS ,
25957  typename TRHS , TRHS VRHS>
25958  struct div<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25959  public tml::function<tml::integral_constant<decltype(VLHS / VRHS),VLHS / VRHS>>
25960  {};
25961 
25962 
25963  template<bool VLHS ,
25964  bool VRHS>
25965  struct logical_or<tml::boolean<VLHS> , tml::boolean<VRHS>> :
25966  public tml::function<tml::boolean<VLHS || VRHS>>
25967  {};
25968 
25969  template<bool VLHS ,
25970  bool VRHS>
25971  struct logical_and<tml::boolean<VLHS> , tml::boolean<VRHS>> :
25972  public tml::function<tml::boolean<VLHS && VRHS>>
25973  {};
25974 
25975  template<bool OP>
25976  struct logical_not<tml::boolean<OP>> :
25977  public tml::function<tml::boolean<!OP>>
25978  {};
25979 
25980  template<typename TLHS , TLHS VLHS ,
25981  typename TRHS , TRHS VRHS>
25982  struct equal<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25983  public tml::function<tml::boolean<VLHS == VRHS>>
25984  {};
25985 
25986  template<typename TLHS , TLHS VLHS ,
25987  typename TRHS , TRHS VRHS>
25988  struct less_than<tml::integral_constant<TLHS,VLHS> , tml::integral_constant<TRHS,VRHS>> :
25989  public tml::function<tml::boolean<(VLHS < VRHS)>>
25990  {};
25991 }
25992 # 25 "./list.hpp" 2
25993 
25994 
25995 # 1 "./iterator.hpp" 1
25996 # 39 "./iterator.hpp"
25997 namespace tml
25998 {
25999  namespace iterator
26000  {
26001 # 62 "./iterator.hpp"
26002  struct sequence_end_element{};
26003 
26004 
26005 
26006 
26007  struct forward_iterator_tag{};
26008  struct reverse_iterator_tag{};
26009 
26010 
26011 
26012 
26013 
26014  template<typename CATEGORY>
26015  struct iterator_traits
26016  {
26017  using iterator_category = CATEGORY;
26018  };
26019 
26020  namespace impl
26021  {
26022 
26023 
26024 
26025 
26026 
26027  template<typename I>
26028  struct deref;
26029 
26030 
26031 
26032 
26033  template<typename I>
26034  struct next;
26035 
26036 
26037 
26038 
26039  template<typename SEQ>
26040  struct begin;
26041 
26042 
26043 
26044 
26045  template<typename SEQ>
26046  struct end;
26047 
26048 
26049 
26050 
26051  template<typename SEQ>
26052  struct rbegin;
26053 
26054 
26055 
26056 
26057  template<typename SEQ>
26058  struct rend;
26059  }
26060 
26061 
26062 
26063 
26064  namespace func
26065  {
26066  template<typename I>
26067  using deref = tml::iterator::impl::deref<I>;
26068 
26069  template<typename I>
26070  using next = tml::iterator::impl::next<I>;
26071 
26072  template<typename SEQ>
26073  using begin = tml::iterator::impl::begin<SEQ>;
26074 
26075  template<typename SEQ>
26076  using end = tml::iterator::impl::end<SEQ>;
26077 
26078  template<typename SEQ>
26079  using rbegin = tml::iterator::impl::rbegin<SEQ>;
26080 
26081  template<typename SEQ>
26082  using rend = tml::iterator::impl::rend<SEQ>;
26083  }
26084 
26085 
26086 
26087 
26088  template<typename I>
26089  using deref = typename tml::iterator::impl::deref<I>::result;
26090 
26091 
26092 
26093 
26094  template<typename I>
26095  using next = typename tml::iterator::impl::next<I>::result;
26096 
26097 
26098 
26099 
26100  template<typename SEQ>
26101  using begin = typename tml::iterator::impl::begin<SEQ>::result;
26102 
26103 
26104 
26105 
26106  template<typename SEQ>
26107  using end = typename tml::iterator::impl::end<SEQ>::result;
26108 
26109 
26110 
26111 
26112  template<typename SEQ>
26113  using rbegin = typename tml::iterator::impl::rbegin<SEQ>::result;
26114 
26115 
26116 
26117 
26118  template<typename SEQ>
26119  using rend = typename tml::iterator::impl::rend<SEQ>::result;
26120  }
26121 }
26122 # 28 "./list.hpp" 2
26123 
26124 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 1 3
26125 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 3
26126 
26127 
26128 # 1 "/usr/bin/../lib/clang/3.4.2/include/stddef.h" 1 3
26129 # 46 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstddef" 2 3
26130 
26131 
26132 namespace std
26133 {
26134 
26135  using ::max_align_t;
26136 }
26137 # 30 "./list.hpp" 2
26138 
26139 
26140 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 1 3
26141 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 3
26142 
26143 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 1 3
26144 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26145 # 69 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26146 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 1 3
26147 # 67 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26148 namespace std __attribute__ ((__visibility__ ("default")))
26149 {
26150  namespace rel_ops
26151  {
26152 # 85 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26153  template <class _Tp>
26154  inline bool
26155  operator!=(const _Tp& __x, const _Tp& __y)
26156  { return !(__x == __y); }
26157 # 98 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26158  template <class _Tp>
26159  inline bool
26160  operator>(const _Tp& __x, const _Tp& __y)
26161  { return __y < __x; }
26162 # 111 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26163  template <class _Tp>
26164  inline bool
26165  operator<=(const _Tp& __x, const _Tp& __y)
26166  { return !(__y < __x); }
26167 # 124 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_relops.h" 3
26168  template <class _Tp>
26169  inline bool
26170  operator>=(const _Tp& __x, const _Tp& __y)
26171  { return !(__x < __y); }
26172 
26173 
26174  }
26175 
26176 }
26177 # 70 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 2 3
26178 
26179 
26180 
26181 
26182 
26183 
26184 namespace std __attribute__ ((__visibility__ ("default")))
26185 {
26186 
26187 
26188  template<class _Tp>
26189  class tuple_size;
26190 
26191  template<std::size_t _Int, class _Tp>
26192  class tuple_element;
26193 
26194 
26195  template<class _Tp1, class _Tp2>
26196  struct tuple_size<std::pair<_Tp1, _Tp2>>
26197  : public integral_constant<std::size_t, 2> { };
26198 
26199  template<class _Tp1, class _Tp2>
26200  struct tuple_element<0, std::pair<_Tp1, _Tp2>>
26201  { typedef _Tp1 type; };
26202 
26203  template<class _Tp1, class _Tp2>
26204  struct tuple_element<1, std::pair<_Tp1, _Tp2>>
26205  { typedef _Tp2 type; };
26206 
26207  template<std::size_t _Int>
26208  struct __pair_get;
26209 
26210  template<>
26211  struct __pair_get<0>
26212  {
26213  template<typename _Tp1, typename _Tp2>
26214  static constexpr _Tp1&
26215  __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
26216  { return __pair.first; }
26217 
26218  template<typename _Tp1, typename _Tp2>
26219  static constexpr _Tp1&&
26220  __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
26221  { return std::forward<_Tp1>(__pair.first); }
26222 
26223  template<typename _Tp1, typename _Tp2>
26224  static constexpr const _Tp1&
26225  __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept
26226  { return __pair.first; }
26227  };
26228 
26229  template<>
26230  struct __pair_get<1>
26231  {
26232  template<typename _Tp1, typename _Tp2>
26233  static constexpr _Tp2&
26234  __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
26235  { return __pair.second; }
26236 
26237  template<typename _Tp1, typename _Tp2>
26238  static constexpr _Tp2&&
26239  __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
26240  { return std::forward<_Tp2>(__pair.second); }
26241 
26242  template<typename _Tp1, typename _Tp2>
26243  static constexpr const _Tp2&
26244  __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept
26245  { return __pair.second; }
26246  };
26247 
26248  template<std::size_t _Int, class _Tp1, class _Tp2>
26249  constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
26250  get(std::pair<_Tp1, _Tp2>& __in) noexcept
26251  { return __pair_get<_Int>::__get(__in); }
26252 
26253  template<std::size_t _Int, class _Tp1, class _Tp2>
26254  constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&&
26255  get(std::pair<_Tp1, _Tp2>&& __in) noexcept
26256  { return __pair_get<_Int>::__move_get(std::move(__in)); }
26257 
26258  template<std::size_t _Int, class _Tp1, class _Tp2>
26259  constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
26260  get(const std::pair<_Tp1, _Tp2>& __in) noexcept
26261  { return __pair_get<_Int>::__const_get(__in); }
26262 # 199 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26263  template<size_t... _Indexes>
26264  struct _Index_tuple
26265  {
26266  typedef _Index_tuple<_Indexes..., sizeof...(_Indexes)> __next;
26267  };
26268 
26269 
26270  template<size_t _Num>
26271  struct _Build_index_tuple
26272  {
26273  typedef typename _Build_index_tuple<_Num - 1>::__type::__next __type;
26274  };
26275 
26276  template<>
26277  struct _Build_index_tuple<0>
26278  {
26279  typedef _Index_tuple<> __type;
26280  };
26281 # 259 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/utility" 3
26282 }
26283 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/algorithm" 2 3
26284 
26285 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 1 3
26286 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 3
26287 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
26288 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
26289 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
26290 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 1 3
26291 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26292 
26293 
26294 
26295 
26296 
26297 
26298 
26299 
26300 namespace std __attribute__ ((__visibility__ ("default")))
26301 {
26302 # 194 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26303  template<typename _IIter, typename _Predicate>
26304  bool
26305  all_of(_IIter, _IIter, _Predicate);
26306 
26307  template<typename _IIter, typename _Predicate>
26308  bool
26309  any_of(_IIter, _IIter, _Predicate);
26310 
26311 
26312  template<typename _FIter, typename _Tp>
26313  bool
26314  binary_search(_FIter, _FIter, const _Tp&);
26315 
26316  template<typename _FIter, typename _Tp, typename _Compare>
26317  bool
26318  binary_search(_FIter, _FIter, const _Tp&, _Compare);
26319 
26320  template<typename _IIter, typename _OIter>
26321  _OIter
26322  copy(_IIter, _IIter, _OIter);
26323 
26324  template<typename _BIter1, typename _BIter2>
26325  _BIter2
26326  copy_backward(_BIter1, _BIter1, _BIter2);
26327 
26328 
26329  template<typename _IIter, typename _OIter, typename _Predicate>
26330  _OIter
26331  copy_if(_IIter, _IIter, _OIter, _Predicate);
26332 
26333  template<typename _IIter, typename _Size, typename _OIter>
26334  _OIter
26335  copy_n(_IIter, _Size, _OIter);
26336 
26337 
26338 
26339 
26340 
26341  template<typename _FIter, typename _Tp>
26342  pair<_FIter, _FIter>
26343  equal_range(_FIter, _FIter, const _Tp&);
26344 
26345  template<typename _FIter, typename _Tp, typename _Compare>
26346  pair<_FIter, _FIter>
26347  equal_range(_FIter, _FIter, const _Tp&, _Compare);
26348 
26349  template<typename _FIter, typename _Tp>
26350  void
26351  fill(_FIter, _FIter, const _Tp&);
26352 
26353  template<typename _OIter, typename _Size, typename _Tp>
26354  _OIter
26355  fill_n(_OIter, _Size, const _Tp&);
26356 
26357 
26358 
26359  template<typename _FIter1, typename _FIter2>
26360  _FIter1
26361  find_end(_FIter1, _FIter1, _FIter2, _FIter2);
26362 
26363  template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
26364  _FIter1
26365  find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26366 
26367 
26368 
26369 
26370 
26371  template<typename _IIter, typename _Predicate>
26372  _IIter
26373  find_if_not(_IIter, _IIter, _Predicate);
26374 
26375 
26376 
26377 
26378 
26379 
26380  template<typename _IIter1, typename _IIter2>
26381  bool
26382  includes(_IIter1, _IIter1, _IIter2, _IIter2);
26383 
26384  template<typename _IIter1, typename _IIter2, typename _Compare>
26385  bool
26386  includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
26387 
26388  template<typename _BIter>
26389  void
26390  inplace_merge(_BIter, _BIter, _BIter);
26391 
26392  template<typename _BIter, typename _Compare>
26393  void
26394  inplace_merge(_BIter, _BIter, _BIter, _Compare);
26395 
26396 
26397  template<typename _RAIter>
26398  bool
26399  is_heap(_RAIter, _RAIter);
26400 
26401  template<typename _RAIter, typename _Compare>
26402  bool
26403  is_heap(_RAIter, _RAIter, _Compare);
26404 
26405  template<typename _RAIter>
26406  _RAIter
26407  is_heap_until(_RAIter, _RAIter);
26408 
26409  template<typename _RAIter, typename _Compare>
26410  _RAIter
26411  is_heap_until(_RAIter, _RAIter, _Compare);
26412 
26413  template<typename _IIter, typename _Predicate>
26414  bool
26415  is_partitioned(_IIter, _IIter, _Predicate);
26416 
26417  template<typename _FIter1, typename _FIter2>
26418  bool
26419  is_permutation(_FIter1, _FIter1, _FIter2);
26420 
26421  template<typename _FIter1, typename _FIter2,
26422  typename _BinaryPredicate>
26423  bool
26424  is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate);
26425 
26426  template<typename _FIter>
26427  bool
26428  is_sorted(_FIter, _FIter);
26429 
26430  template<typename _FIter, typename _Compare>
26431  bool
26432  is_sorted(_FIter, _FIter, _Compare);
26433 
26434  template<typename _FIter>
26435  _FIter
26436  is_sorted_until(_FIter, _FIter);
26437 
26438  template<typename _FIter, typename _Compare>
26439  _FIter
26440  is_sorted_until(_FIter, _FIter, _Compare);
26441 
26442 
26443  template<typename _FIter1, typename _FIter2>
26444  void
26445  iter_swap(_FIter1, _FIter2);
26446 
26447  template<typename _FIter, typename _Tp>
26448  _FIter
26449  lower_bound(_FIter, _FIter, const _Tp&);
26450 
26451  template<typename _FIter, typename _Tp, typename _Compare>
26452  _FIter
26453  lower_bound(_FIter, _FIter, const _Tp&, _Compare);
26454 
26455  template<typename _RAIter>
26456  void
26457  make_heap(_RAIter, _RAIter);
26458 
26459  template<typename _RAIter, typename _Compare>
26460  void
26461  make_heap(_RAIter, _RAIter, _Compare);
26462 
26463  template<typename _Tp>
26464  const _Tp&
26465  max(const _Tp&, const _Tp&);
26466 
26467  template<typename _Tp, typename _Compare>
26468  const _Tp&
26469  max(const _Tp&, const _Tp&, _Compare);
26470 
26471 
26472 
26473 
26474  template<typename _Tp>
26475  const _Tp&
26476  min(const _Tp&, const _Tp&);
26477 
26478  template<typename _Tp, typename _Compare>
26479  const _Tp&
26480  min(const _Tp&, const _Tp&, _Compare);
26481 
26482 
26483 
26484 
26485  template<typename _Tp>
26486  pair<const _Tp&, const _Tp&>
26487  minmax(const _Tp&, const _Tp&);
26488 
26489  template<typename _Tp, typename _Compare>
26490  pair<const _Tp&, const _Tp&>
26491  minmax(const _Tp&, const _Tp&, _Compare);
26492 
26493  template<typename _FIter>
26494  pair<_FIter, _FIter>
26495  minmax_element(_FIter, _FIter);
26496 
26497  template<typename _FIter, typename _Compare>
26498  pair<_FIter, _FIter>
26499  minmax_element(_FIter, _FIter, _Compare);
26500 
26501  template<typename _Tp>
26502  _Tp
26503  min(initializer_list<_Tp>);
26504 
26505  template<typename _Tp, typename _Compare>
26506  _Tp
26507  min(initializer_list<_Tp>, _Compare);
26508 
26509  template<typename _Tp>
26510  _Tp
26511  max(initializer_list<_Tp>);
26512 
26513  template<typename _Tp, typename _Compare>
26514  _Tp
26515  max(initializer_list<_Tp>, _Compare);
26516 
26517  template<typename _Tp>
26518  pair<_Tp, _Tp>
26519  minmax(initializer_list<_Tp>);
26520 
26521  template<typename _Tp, typename _Compare>
26522  pair<_Tp, _Tp>
26523  minmax(initializer_list<_Tp>, _Compare);
26524 
26525 
26526 
26527 
26528  template<typename _BIter>
26529  bool
26530  next_permutation(_BIter, _BIter);
26531 
26532  template<typename _BIter, typename _Compare>
26533  bool
26534  next_permutation(_BIter, _BIter, _Compare);
26535 
26536 
26537  template<typename _IIter, typename _Predicate>
26538  bool
26539  none_of(_IIter, _IIter, _Predicate);
26540 
26541 
26542 
26543 
26544 
26545  template<typename _IIter, typename _RAIter>
26546  _RAIter
26547  partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter);
26548 
26549  template<typename _IIter, typename _RAIter, typename _Compare>
26550  _RAIter
26551  partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare);
26552 
26553 
26554 
26555 
26556  template<typename _IIter, typename _OIter1,
26557  typename _OIter2, typename _Predicate>
26558  pair<_OIter1, _OIter2>
26559  partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate);
26560 
26561  template<typename _FIter, typename _Predicate>
26562  _FIter
26563  partition_point(_FIter, _FIter, _Predicate);
26564 
26565 
26566  template<typename _RAIter>
26567  void
26568  pop_heap(_RAIter, _RAIter);
26569 
26570  template<typename _RAIter, typename _Compare>
26571  void
26572  pop_heap(_RAIter, _RAIter, _Compare);
26573 
26574  template<typename _BIter>
26575  bool
26576  prev_permutation(_BIter, _BIter);
26577 
26578  template<typename _BIter, typename _Compare>
26579  bool
26580  prev_permutation(_BIter, _BIter, _Compare);
26581 
26582  template<typename _RAIter>
26583  void
26584  push_heap(_RAIter, _RAIter);
26585 
26586  template<typename _RAIter, typename _Compare>
26587  void
26588  push_heap(_RAIter, _RAIter, _Compare);
26589 
26590 
26591 
26592  template<typename _FIter, typename _Tp>
26593  _FIter
26594  remove(_FIter, _FIter, const _Tp&);
26595 
26596  template<typename _FIter, typename _Predicate>
26597  _FIter
26598  remove_if(_FIter, _FIter, _Predicate);
26599 
26600  template<typename _IIter, typename _OIter, typename _Tp>
26601  _OIter
26602  remove_copy(_IIter, _IIter, _OIter, const _Tp&);
26603 
26604  template<typename _IIter, typename _OIter, typename _Predicate>
26605  _OIter
26606  remove_copy_if(_IIter, _IIter, _OIter, _Predicate);
26607 
26608 
26609 
26610  template<typename _IIter, typename _OIter, typename _Tp>
26611  _OIter
26612  replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&);
26613 
26614  template<typename _Iter, typename _OIter, typename _Predicate, typename _Tp>
26615  _OIter
26616  replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&);
26617 
26618 
26619 
26620  template<typename _BIter>
26621  void
26622  reverse(_BIter, _BIter);
26623 
26624  template<typename _BIter, typename _OIter>
26625  _OIter
26626  reverse_copy(_BIter, _BIter, _OIter);
26627 
26628  template<typename _FIter>
26629  void
26630  rotate(_FIter, _FIter, _FIter);
26631 
26632  template<typename _FIter, typename _OIter>
26633  _OIter
26634  rotate_copy(_FIter, _FIter, _FIter, _OIter);
26635 # 535 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/algorithmfwd.h" 3
26636  template<typename _RAIter, typename _UGenerator>
26637  void
26638  shuffle(_RAIter, _RAIter, _UGenerator&&);
26639 
26640 
26641  template<typename _RAIter>
26642  void
26643  sort_heap(_RAIter, _RAIter);
26644 
26645  template<typename _RAIter, typename _Compare>
26646  void
26647  sort_heap(_RAIter, _RAIter, _Compare);
26648 
26649  template<typename _BIter, typename _Predicate>
26650  _BIter
26651  stable_partition(_BIter, _BIter, _Predicate);
26652 
26653  template<typename _Tp>
26654  void
26655  swap(_Tp&, _Tp&)
26656 
26657  noexcept(__and_<is_nothrow_move_constructible<_Tp>,
26658  is_nothrow_move_assignable<_Tp>>::value)
26659 
26660  ;
26661 
26662  template<typename _Tp, size_t _Nm>
26663  void
26664  swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
26665 
26666  noexcept(noexcept(swap(*__a, *__b)))
26667 
26668  ;
26669 
26670  template<typename _FIter1, typename _FIter2>
26671  _FIter2
26672  swap_ranges(_FIter1, _FIter1, _FIter2);
26673 
26674 
26675 
26676  template<typename _FIter>
26677  _FIter
26678  unique(_FIter, _FIter);
26679 
26680  template<typename _FIter, typename _BinaryPredicate>
26681  _FIter
26682  unique(_FIter, _FIter, _BinaryPredicate);
26683 
26684 
26685 
26686  template<typename _FIter, typename _Tp>
26687  _FIter
26688  upper_bound(_FIter, _FIter, const _Tp&);
26689 
26690  template<typename _FIter, typename _Tp, typename _Compare>
26691  _FIter
26692  upper_bound(_FIter, _FIter, const _Tp&, _Compare);
26693 
26694 
26695 
26696 
26697 
26698  template<typename _FIter>
26699  _FIter
26700  adjacent_find(_FIter, _FIter);
26701 
26702  template<typename _FIter, typename _BinaryPredicate>
26703  _FIter
26704  adjacent_find(_FIter, _FIter, _BinaryPredicate);
26705 
26706  template<typename _IIter, typename _Tp>
26707  typename iterator_traits<_IIter>::difference_type
26708  count(_IIter, _IIter, const _Tp&);
26709 
26710  template<typename _IIter, typename _Predicate>
26711  typename iterator_traits<_IIter>::difference_type
26712  count_if(_IIter, _IIter, _Predicate);
26713 
26714  template<typename _IIter1, typename _IIter2>
26715  bool
26716  equal(_IIter1, _IIter1, _IIter2);
26717 
26718  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
26719  bool
26720  equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
26721 
26722  template<typename _IIter, typename _Tp>
26723  _IIter
26724  find(_IIter, _IIter, const _Tp&);
26725 
26726  template<typename _FIter1, typename _FIter2>
26727  _FIter1
26728  find_first_of(_FIter1, _FIter1, _FIter2, _FIter2);
26729 
26730  template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
26731  _FIter1
26732  find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26733 
26734  template<typename _IIter, typename _Predicate>
26735  _IIter
26736  find_if(_IIter, _IIter, _Predicate);
26737 
26738  template<typename _IIter, typename _Funct>
26739  _Funct
26740  for_each(_IIter, _IIter, _Funct);
26741 
26742  template<typename _FIter, typename _Generator>
26743  void
26744  generate(_FIter, _FIter, _Generator);
26745 
26746  template<typename _OIter, typename _Size, typename _Generator>
26747  _OIter
26748  generate_n(_OIter, _Size, _Generator);
26749 
26750  template<typename _IIter1, typename _IIter2>
26751  bool
26752  lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
26753 
26754  template<typename _IIter1, typename _IIter2, typename _Compare>
26755  bool
26756  lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
26757 
26758  template<typename _FIter>
26759  _FIter
26760  max_element(_FIter, _FIter);
26761 
26762  template<typename _FIter, typename _Compare>
26763  _FIter
26764  max_element(_FIter, _FIter, _Compare);
26765 
26766  template<typename _IIter1, typename _IIter2, typename _OIter>
26767  _OIter
26768  merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26769 
26770  template<typename _IIter1, typename _IIter2, typename _OIter,
26771  typename _Compare>
26772  _OIter
26773  merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26774 
26775  template<typename _FIter>
26776  _FIter
26777  min_element(_FIter, _FIter);
26778 
26779  template<typename _FIter, typename _Compare>
26780  _FIter
26781  min_element(_FIter, _FIter, _Compare);
26782 
26783  template<typename _IIter1, typename _IIter2>
26784  pair<_IIter1, _IIter2>
26785  mismatch(_IIter1, _IIter1, _IIter2);
26786 
26787  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
26788  pair<_IIter1, _IIter2>
26789  mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
26790 
26791  template<typename _RAIter>
26792  void
26793  nth_element(_RAIter, _RAIter, _RAIter);
26794 
26795  template<typename _RAIter, typename _Compare>
26796  void
26797  nth_element(_RAIter, _RAIter, _RAIter, _Compare);
26798 
26799  template<typename _RAIter>
26800  void
26801  partial_sort(_RAIter, _RAIter, _RAIter);
26802 
26803  template<typename _RAIter, typename _Compare>
26804  void
26805  partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
26806 
26807  template<typename _BIter, typename _Predicate>
26808  _BIter
26809  partition(_BIter, _BIter, _Predicate);
26810 
26811  template<typename _RAIter>
26812  void
26813  random_shuffle(_RAIter, _RAIter);
26814 
26815  template<typename _RAIter, typename _Generator>
26816  void
26817  random_shuffle(_RAIter, _RAIter,
26818 
26819  _Generator&&);
26820 
26821 
26822 
26823 
26824  template<typename _FIter, typename _Tp>
26825  void
26826  replace(_FIter, _FIter, const _Tp&, const _Tp&);
26827 
26828  template<typename _FIter, typename _Predicate, typename _Tp>
26829  void
26830  replace_if(_FIter, _FIter, _Predicate, const _Tp&);
26831 
26832  template<typename _FIter1, typename _FIter2>
26833  _FIter1
26834  search(_FIter1, _FIter1, _FIter2, _FIter2);
26835 
26836  template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
26837  _FIter1
26838  search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
26839 
26840  template<typename _FIter, typename _Size, typename _Tp>
26841  _FIter
26842  search_n(_FIter, _FIter, _Size, const _Tp&);
26843 
26844  template<typename _FIter, typename _Size, typename _Tp,
26845  typename _BinaryPredicate>
26846  _FIter
26847  search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate);
26848 
26849  template<typename _IIter1, typename _IIter2, typename _OIter>
26850  _OIter
26851  set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26852 
26853  template<typename _IIter1, typename _IIter2, typename _OIter,
26854  typename _Compare>
26855  _OIter
26856  set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26857 
26858  template<typename _IIter1, typename _IIter2, typename _OIter>
26859  _OIter
26860  set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26861 
26862  template<typename _IIter1, typename _IIter2, typename _OIter,
26863  typename _Compare>
26864  _OIter
26865  set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26866 
26867  template<typename _IIter1, typename _IIter2, typename _OIter>
26868  _OIter
26869  set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26870 
26871  template<typename _IIter1, typename _IIter2, typename _OIter,
26872  typename _Compare>
26873  _OIter
26874  set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
26875  _OIter, _Compare);
26876 
26877  template<typename _IIter1, typename _IIter2, typename _OIter>
26878  _OIter
26879  set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
26880 
26881  template<typename _IIter1, typename _IIter2, typename _OIter,
26882  typename _Compare>
26883  _OIter
26884  set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
26885 
26886  template<typename _RAIter>
26887  void
26888  sort(_RAIter, _RAIter);
26889 
26890  template<typename _RAIter, typename _Compare>
26891  void
26892  sort(_RAIter, _RAIter, _Compare);
26893 
26894  template<typename _RAIter>
26895  void
26896  stable_sort(_RAIter, _RAIter);
26897 
26898  template<typename _RAIter, typename _Compare>
26899  void
26900  stable_sort(_RAIter, _RAIter, _Compare);
26901 
26902  template<typename _IIter, typename _OIter, typename _UnaryOperation>
26903  _OIter
26904  transform(_IIter, _IIter, _OIter, _UnaryOperation);
26905 
26906  template<typename _IIter1, typename _IIter2, typename _OIter,
26907  typename _BinaryOperation>
26908  _OIter
26909  transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation);
26910 
26911  template<typename _IIter, typename _OIter>
26912  _OIter
26913  unique_copy(_IIter, _IIter, _OIter);
26914 
26915  template<typename _IIter, typename _OIter, typename _BinaryPredicate>
26916  _OIter
26917  unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate);
26918 
26919 
26920 }
26921 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
26922 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 1 3
26923 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
26924 namespace std __attribute__ ((__visibility__ ("default")))
26925 {
26926 
26927 
26928 
26929 
26930 
26931 
26932 
26933  template<typename _RandomAccessIterator, typename _Distance,
26934  typename _Compare>
26935  _Distance
26936  __is_heap_until(_RandomAccessIterator __first, _Distance __n,
26937  _Compare __comp)
26938  {
26939  _Distance __parent = 0;
26940  for (_Distance __child = 1; __child < __n; ++__child)
26941  {
26942  if (__comp(__first + __parent, __first + __child))
26943  return __child;
26944  if ((__child & 1) == 0)
26945  ++__parent;
26946  }
26947  return __n;
26948  }
26949 
26950 
26951 
26952  template<typename _RandomAccessIterator, typename _Distance>
26953  inline bool
26954  __is_heap(_RandomAccessIterator __first, _Distance __n)
26955  {
26956  return std::__is_heap_until(__first, __n,
26957  __gnu_cxx::__ops::__iter_less_iter()) == __n;
26958  }
26959 
26960  template<typename _RandomAccessIterator, typename _Compare,
26961  typename _Distance>
26962  inline bool
26963  __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n)
26964  {
26965  return std::__is_heap_until(__first, __n,
26966  __gnu_cxx::__ops::__iter_comp_iter(__comp)) == __n;
26967  }
26968 
26969  template<typename _RandomAccessIterator>
26970  inline bool
26971  __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
26972  { return std::__is_heap(__first, std::distance(__first, __last)); }
26973 
26974  template<typename _RandomAccessIterator, typename _Compare>
26975  inline bool
26976  __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
26977  _Compare __comp)
26978  { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
26979 
26980 
26981 
26982 
26983  template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
26984  typename _Compare>
26985  void
26986  __push_heap(_RandomAccessIterator __first,
26987  _Distance __holeIndex, _Distance __topIndex, _Tp __value,
26988  _Compare __comp)
26989  {
26990  _Distance __parent = (__holeIndex - 1) / 2;
26991  while (__holeIndex > __topIndex && __comp(__first + __parent, __value))
26992  {
26993  *(__first + __holeIndex) = std::move(*(__first + __parent));
26994  __holeIndex = __parent;
26995  __parent = (__holeIndex - 1) / 2;
26996  }
26997  *(__first + __holeIndex) = std::move(__value);
26998  }
26999 # 148 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27000  template<typename _RandomAccessIterator>
27001  inline void
27002  push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27003  {
27004  typedef typename iterator_traits<_RandomAccessIterator>::value_type
27005  _ValueType;
27006  typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27007  _DistanceType;
27008 
27009 
27010 
27011 
27012 
27013  ;
27014  ;
27015 
27016  _ValueType __value = std::move(*(__last - 1));
27017  std::__push_heap(__first, _DistanceType((__last - __first) - 1),
27018  _DistanceType(0), std::move(__value),
27019  __gnu_cxx::__ops::__iter_less_val());
27020  }
27021 # 182 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27022  template<typename _RandomAccessIterator, typename _Compare>
27023  inline void
27024  push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27025  _Compare __comp)
27026  {
27027  typedef typename iterator_traits<_RandomAccessIterator>::value_type
27028  _ValueType;
27029  typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27030  _DistanceType;
27031 
27032 
27033 
27034 
27035  ;
27036  ;
27037 
27038  _ValueType __value = std::move(*(__last - 1));
27039  std::__push_heap(__first, _DistanceType((__last - __first) - 1),
27040  _DistanceType(0), std::move(__value),
27041  __gnu_cxx::__ops::__iter_comp_val(__comp));
27042  }
27043 
27044  template<typename _RandomAccessIterator, typename _Distance,
27045  typename _Tp, typename _Compare>
27046  void
27047  __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
27048  _Distance __len, _Tp __value, _Compare __comp)
27049  {
27050  const _Distance __topIndex = __holeIndex;
27051  _Distance __secondChild = __holeIndex;
27052  while (__secondChild < (__len - 1) / 2)
27053  {
27054  __secondChild = 2 * (__secondChild + 1);
27055  if (__comp(__first + __secondChild,
27056  __first + (__secondChild - 1)))
27057  __secondChild--;
27058  *(__first + __holeIndex) = std::move(*(__first + __secondChild));
27059  __holeIndex = __secondChild;
27060  }
27061  if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2)
27062  {
27063  __secondChild = 2 * (__secondChild + 1);
27064  *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1)));
27065 
27066  __holeIndex = __secondChild - 1;
27067  }
27068  std::__push_heap(__first, __holeIndex, __topIndex,
27069  std::move(__value),
27070  __gnu_cxx::__ops::__iter_comp_val(__comp));
27071  }
27072 
27073  template<typename _RandomAccessIterator, typename _Compare>
27074  inline void
27075  __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27076  _RandomAccessIterator __result, _Compare __comp)
27077  {
27078  typedef typename iterator_traits<_RandomAccessIterator>::value_type
27079  _ValueType;
27080  typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27081  _DistanceType;
27082 
27083  _ValueType __value = std::move(*__result);
27084  *__result = std::move(*__first);
27085  std::__adjust_heap(__first, _DistanceType(0),
27086  _DistanceType(__last - __first),
27087  std::move(__value), __comp);
27088  }
27089 # 261 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27090  template<typename _RandomAccessIterator>
27091  inline void
27092  pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27093  {
27094  typedef typename iterator_traits<_RandomAccessIterator>::value_type
27095  _ValueType;
27096 
27097 
27098 
27099 
27100 
27101  ;
27102  ;
27103  ;
27104 
27105  if (__last - __first > 1)
27106  {
27107  --__last;
27108  std::__pop_heap(__first, __last, __last,
27109  __gnu_cxx::__ops::__iter_less_iter());
27110  }
27111  }
27112 # 295 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27113  template<typename _RandomAccessIterator, typename _Compare>
27114  inline void
27115  pop_heap(_RandomAccessIterator __first,
27116  _RandomAccessIterator __last, _Compare __comp)
27117  {
27118 
27119 
27120 
27121  ;
27122  ;
27123  ;
27124 
27125  if (__last - __first > 1)
27126  {
27127  --__last;
27128  std::__pop_heap(__first, __last, __last,
27129  __gnu_cxx::__ops::__iter_comp_iter(__comp));
27130  }
27131  }
27132 
27133  template<typename _RandomAccessIterator, typename _Compare>
27134  void
27135  __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27136  _Compare __comp)
27137  {
27138  typedef typename iterator_traits<_RandomAccessIterator>::value_type
27139  _ValueType;
27140  typedef typename iterator_traits<_RandomAccessIterator>::difference_type
27141  _DistanceType;
27142 
27143  if (__last - __first < 2)
27144  return;
27145 
27146  const _DistanceType __len = __last - __first;
27147  _DistanceType __parent = (__len - 2) / 2;
27148  while (true)
27149  {
27150  _ValueType __value = std::move(*(__first + __parent));
27151  std::__adjust_heap(__first, __parent, __len, std::move(__value),
27152  __comp);
27153  if (__parent == 0)
27154  return;
27155  __parent--;
27156  }
27157  }
27158 # 349 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27159  template<typename _RandomAccessIterator>
27160  inline void
27161  make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27162  {
27163 
27164 
27165 
27166 
27167 
27168  ;
27169 
27170  std::__make_heap(__first, __last,
27171  __gnu_cxx::__ops::__iter_less_iter());
27172  }
27173 # 374 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27174  template<typename _RandomAccessIterator, typename _Compare>
27175  inline void
27176  make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27177  _Compare __comp)
27178  {
27179 
27180 
27181 
27182  ;
27183 
27184  std::__make_heap(__first, __last,
27185  __gnu_cxx::__ops::__iter_comp_iter(__comp));
27186  }
27187 
27188  template<typename _RandomAccessIterator, typename _Compare>
27189  void
27190  __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27191  _Compare __comp)
27192  {
27193  while (__last - __first > 1)
27194  {
27195  --__last;
27196  std::__pop_heap(__first, __last, __last, __comp);
27197  }
27198  }
27199 # 408 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27200  template<typename _RandomAccessIterator>
27201  inline void
27202  sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27203  {
27204 
27205 
27206 
27207 
27208 
27209  ;
27210  ;
27211 
27212  std::__sort_heap(__first, __last,
27213  __gnu_cxx::__ops::__iter_less_iter());
27214  }
27215 # 434 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27216  template<typename _RandomAccessIterator, typename _Compare>
27217  inline void
27218  sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27219  _Compare __comp)
27220  {
27221 
27222 
27223 
27224  ;
27225  ;
27226 
27227  std::__sort_heap(__first, __last,
27228  __gnu_cxx::__ops::__iter_comp_iter(__comp));
27229  }
27230 # 460 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27231  template<typename _RandomAccessIterator>
27232  inline _RandomAccessIterator
27233  is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last)
27234  {
27235 
27236 
27237 
27238 
27239 
27240  ;
27241 
27242  return __first +
27243  std::__is_heap_until(__first, std::distance(__first, __last),
27244  __gnu_cxx::__ops::__iter_less_iter());
27245  }
27246 # 487 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27247  template<typename _RandomAccessIterator, typename _Compare>
27248  inline _RandomAccessIterator
27249  is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last,
27250  _Compare __comp)
27251  {
27252 
27253 
27254 
27255  ;
27256 
27257  return __first
27258  + std::__is_heap_until(__first, std::distance(__first, __last),
27259  __gnu_cxx::__ops::__iter_comp_iter(__comp));
27260  }
27261 # 509 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27262  template<typename _RandomAccessIterator>
27263  inline bool
27264  is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
27265  { return std::is_heap_until(__first, __last) == __last; }
27266 # 522 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_heap.h" 3
27267  template<typename _RandomAccessIterator, typename _Compare>
27268  inline bool
27269  is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
27270  _Compare __comp)
27271  { return std::is_heap_until(__first, __last, __comp) == __last; }
27272 
27273 
27274 
27275 }
27276 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
27277 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 1 3
27278 # 60 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27279 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 1 3
27280 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 3
27281 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 1 3
27282 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 3
27283 
27284 
27285 
27286 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 1 3
27287 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27288 namespace std __attribute__ ((__visibility__ ("default")))
27289 {
27290 
27291 
27292  template<typename _Alloc, typename _Tp>
27293  class __alloctr_rebind_helper
27294  {
27295  template<typename _Alloc2, typename _Tp2>
27296  static constexpr true_type
27297  _S_chk(typename _Alloc2::template rebind<_Tp2>::other*);
27298 
27299  template<typename, typename>
27300  static constexpr false_type
27301  _S_chk(...);
27302 
27303  public:
27304  using __type = decltype(_S_chk<_Alloc, _Tp>(nullptr));
27305  };
27306 
27307  template<typename _Alloc, typename _Tp,
27308  bool = __alloctr_rebind_helper<_Alloc, _Tp>::__type::value>
27309  struct __alloctr_rebind;
27310 
27311  template<typename _Alloc, typename _Tp>
27312  struct __alloctr_rebind<_Alloc, _Tp, true>
27313  {
27314  typedef typename _Alloc::template rebind<_Tp>::other __type;
27315  };
27316 
27317  template<template<typename, typename...> class _Alloc, typename _Tp,
27318  typename _Up, typename... _Args>
27319  struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false>
27320  {
27321  typedef _Alloc<_Tp, _Args...> __type;
27322  };
27323 
27324 
27325 
27326 
27327 
27328  template<typename _Alloc>
27329  struct allocator_traits
27330  {
27331 
27332  typedef _Alloc allocator_type;
27333 
27334  typedef typename _Alloc::value_type value_type;
27335 # 95 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27336 private: template<typename _Tp> static typename _Tp::pointer _S_pointer_helper(_Tp*); static value_type* _S_pointer_helper(...); typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer; public:
27337 
27338 
27339 
27340 
27341 
27342 
27343  typedef __pointer pointer;
27344 
27345 private: template<typename _Tp> static typename _Tp::const_pointer _S_const_pointer_helper(_Tp*); static typename pointer_traits<pointer>::template rebind<const value_type> _S_const_pointer_helper(...); typedef decltype(_S_const_pointer_helper((_Alloc*)0)) __const_pointer; public:
27346 # 113 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27347  typedef __const_pointer const_pointer;
27348 
27349 private: template<typename _Tp> static typename _Tp::void_pointer _S_void_pointer_helper(_Tp*); static typename pointer_traits<pointer>::template rebind<void> _S_void_pointer_helper(...); typedef decltype(_S_void_pointer_helper((_Alloc*)0)) __void_pointer; public:
27350 # 124 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27351  typedef __void_pointer void_pointer;
27352 
27353 private: template<typename _Tp> static typename _Tp::const_void_pointer _S_const_void_pointer_helper(_Tp*); static typename pointer_traits<pointer>::template rebind<const void> _S_const_void_pointer_helper(...); typedef decltype(_S_const_void_pointer_helper((_Alloc*)0)) __const_void_pointer; public:
27354 # 135 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27355  typedef __const_void_pointer const_void_pointer;
27356 
27357 private: template<typename _Tp> static typename _Tp::difference_type _S_difference_type_helper(_Tp*); static typename pointer_traits<pointer>::difference_type _S_difference_type_helper(...); typedef decltype(_S_difference_type_helper((_Alloc*)0)) __difference_type; public:
27358 # 146 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27359  typedef __difference_type difference_type;
27360 
27361 private: template<typename _Tp> static typename _Tp::size_type _S_size_type_helper(_Tp*); static typename make_unsigned<difference_type>::type _S_size_type_helper(...); typedef decltype(_S_size_type_helper((_Alloc*)0)) __size_type; public:
27362 # 157 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27363  typedef __size_type size_type;
27364 
27365 private: template<typename _Tp> static typename _Tp::propagate_on_container_copy_assignment _S_propagate_on_container_copy_assignment_helper(_Tp*); static false_type _S_propagate_on_container_copy_assignment_helper(...); typedef decltype(_S_propagate_on_container_copy_assignment_helper((_Alloc*)0)) __propagate_on_container_copy_assignment; public:
27366 # 168 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27367  typedef __propagate_on_container_copy_assignment
27368  propagate_on_container_copy_assignment;
27369 
27370 private: template<typename _Tp> static typename _Tp::propagate_on_container_move_assignment _S_propagate_on_container_move_assignment_helper(_Tp*); static false_type _S_propagate_on_container_move_assignment_helper(...); typedef decltype(_S_propagate_on_container_move_assignment_helper((_Alloc*)0)) __propagate_on_container_move_assignment; public:
27371 # 180 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27372  typedef __propagate_on_container_move_assignment
27373  propagate_on_container_move_assignment;
27374 
27375 private: template<typename _Tp> static typename _Tp::propagate_on_container_swap _S_propagate_on_container_swap_helper(_Tp*); static false_type _S_propagate_on_container_swap_helper(...); typedef decltype(_S_propagate_on_container_swap_helper((_Alloc*)0)) __propagate_on_container_swap; public:
27376 # 192 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27377  typedef __propagate_on_container_swap propagate_on_container_swap;
27378 
27379 
27380 
27381  template<typename _Tp>
27382  using rebind_alloc = typename __alloctr_rebind<_Alloc, _Tp>::__type;
27383  template<typename _Tp>
27384  using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
27385 
27386  private:
27387  template<typename _Alloc2>
27388  struct __allocate_helper
27389  {
27390  template<typename _Alloc3,
27391  typename = decltype(std::declval<_Alloc3*>()->allocate(
27392  std::declval<size_type>(),
27393  std::declval<const_void_pointer>()))>
27394  static true_type __test(int);
27395 
27396  template<typename>
27397  static false_type __test(...);
27398 
27399  using type = decltype(__test<_Alloc>(0));
27400  };
27401 
27402  template<typename _Alloc2>
27403  using __has_allocate = typename __allocate_helper<_Alloc2>::type;
27404 
27405  template<typename _Alloc2,
27406  typename = _Require<__has_allocate<_Alloc2>>>
27407  static pointer
27408  _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint)
27409  { return __a.allocate(__n, __hint); }
27410 
27411  template<typename _Alloc2, typename _UnusedHint,
27412  typename = _Require<__not_<__has_allocate<_Alloc2>>>>
27413  static pointer
27414  _S_allocate(_Alloc2& __a, size_type __n, _UnusedHint)
27415  { return __a.allocate(__n); }
27416 
27417  template<typename _Tp, typename... _Args>
27418  struct __construct_helper
27419  {
27420  template<typename _Alloc2,
27421  typename = decltype(std::declval<_Alloc2*>()->construct(
27422  std::declval<_Tp*>(), std::declval<_Args>()...))>
27423  static true_type __test(int);
27424 
27425  template<typename>
27426  static false_type __test(...);
27427 
27428  using type = decltype(__test<_Alloc>(0));
27429  };
27430 
27431  template<typename _Tp, typename... _Args>
27432  using __has_construct
27433  = typename __construct_helper<_Tp, _Args...>::type;
27434 
27435  template<typename _Tp, typename... _Args>
27436  static _Require<__has_construct<_Tp, _Args...>>
27437  _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
27438  { __a.construct(__p, std::forward<_Args>(__args)...); }
27439 
27440  template<typename _Tp, typename... _Args>
27441  static
27442  _Require<__and_<__not_<__has_construct<_Tp, _Args...>>,
27443  is_constructible<_Tp, _Args...>>>
27444  _S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
27445  { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); }
27446 
27447  template<typename _Tp>
27448  struct __destroy_helper
27449  {
27450  template<typename _Alloc2,
27451  typename = decltype(std::declval<_Alloc2*>()->destroy(
27452  std::declval<_Tp*>()))>
27453  static true_type __test(int);
27454 
27455  template<typename>
27456  static false_type __test(...);
27457 
27458  using type = decltype(__test<_Alloc>(0));
27459  };
27460 
27461  template<typename _Tp>
27462  using __has_destroy = typename __destroy_helper<_Tp>::type;
27463 
27464  template<typename _Tp>
27465  static _Require<__has_destroy<_Tp>>
27466  _S_destroy(_Alloc& __a, _Tp* __p)
27467  { __a.destroy(__p); }
27468 
27469  template<typename _Tp>
27470  static _Require<__not_<__has_destroy<_Tp>>>
27471  _S_destroy(_Alloc&, _Tp* __p)
27472  { __p->~_Tp(); }
27473 
27474  template<typename _Alloc2>
27475  struct __maxsize_helper
27476  {
27477  template<typename _Alloc3,
27478  typename = decltype(std::declval<_Alloc3*>()->max_size())>
27479  static true_type __test(int);
27480 
27481  template<typename>
27482  static false_type __test(...);
27483 
27484  using type = decltype(__test<_Alloc2>(0));
27485  };
27486 
27487  template<typename _Alloc2>
27488  using __has_max_size = typename __maxsize_helper<_Alloc2>::type;
27489 
27490  template<typename _Alloc2,
27491  typename = _Require<__has_max_size<_Alloc2>>>
27492  static size_type
27493  _S_max_size(_Alloc2& __a, int)
27494  { return __a.max_size(); }
27495 
27496  template<typename _Alloc2,
27497  typename = _Require<__not_<__has_max_size<_Alloc2>>>>
27498  static size_type
27499  _S_max_size(_Alloc2&, ...)
27500  { return __gnu_cxx::__numeric_traits<size_type>::__max; }
27501 
27502  template<typename _Alloc2>
27503  struct __select_helper
27504  {
27505  template<typename _Alloc3, typename
27506  = decltype(std::declval<_Alloc3*>()
27507  ->select_on_container_copy_construction())>
27508  static true_type __test(int);
27509 
27510  template<typename>
27511  static false_type __test(...);
27512 
27513  using type = decltype(__test<_Alloc2>(0));
27514  };
27515 
27516  template<typename _Alloc2>
27517  using __has_soccc = typename __select_helper<_Alloc2>::type;
27518 
27519  template<typename _Alloc2,
27520  typename = _Require<__has_soccc<_Alloc2>>>
27521  static _Alloc2
27522  _S_select(_Alloc2& __a, int)
27523  { return __a.select_on_container_copy_construction(); }
27524 
27525  template<typename _Alloc2,
27526  typename = _Require<__not_<__has_soccc<_Alloc2>>>>
27527  static _Alloc2
27528  _S_select(_Alloc2& __a, ...)
27529  { return __a; }
27530 
27531  public:
27532 # 355 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27533  static pointer
27534  allocate(_Alloc& __a, size_type __n)
27535  { return __a.allocate(__n); }
27536 # 370 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27537  static pointer
27538  allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
27539  { return _S_allocate(__a, __n, __hint); }
27540 # 382 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27541  static void deallocate(_Alloc& __a, pointer __p, size_type __n)
27542  { __a.deallocate(__p, __n); }
27543 # 396 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27544  template<typename _Tp, typename... _Args>
27545  static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
27546  -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...))
27547  { _S_construct(__a, __p, std::forward<_Args>(__args)...); }
27548 # 409 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27549  template <class _Tp>
27550  static void destroy(_Alloc& __a, _Tp* __p)
27551  { _S_destroy(__a, __p); }
27552 # 421 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27553  static size_type max_size(const _Alloc& __a) noexcept
27554  { return _S_max_size(__a, 0); }
27555 # 432 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/alloc_traits.h" 3
27556  static _Alloc
27557  select_on_container_copy_construction(const _Alloc& __rhs)
27558  { return _S_select(__rhs, 0); }
27559  };
27560 
27561  template<typename _Alloc>
27562  inline void
27563  __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type)
27564  { __one = __two; }
27565 
27566  template<typename _Alloc>
27567  inline void
27568  __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type)
27569  { }
27570 
27571  template<typename _Alloc>
27572  inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two)
27573  {
27574  typedef allocator_traits<_Alloc> __traits;
27575  typedef typename __traits::propagate_on_container_copy_assignment __pocca;
27576  __do_alloc_on_copy(__one, __two, __pocca());
27577  }
27578 
27579  template<typename _Alloc>
27580  inline _Alloc __alloc_on_copy(const _Alloc& __a)
27581  {
27582  typedef allocator_traits<_Alloc> __traits;
27583  return __traits::select_on_container_copy_construction(__a);
27584  }
27585 
27586  template<typename _Alloc>
27587  inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type)
27588  { __one = std::move(__two); }
27589 
27590  template<typename _Alloc>
27591  inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type)
27592  { }
27593 
27594  template<typename _Alloc>
27595  inline void __alloc_on_move(_Alloc& __one, _Alloc& __two)
27596  {
27597  typedef allocator_traits<_Alloc> __traits;
27598  typedef typename __traits::propagate_on_container_move_assignment __pocma;
27599  __do_alloc_on_move(__one, __two, __pocma());
27600  }
27601 
27602  template<typename _Alloc>
27603  inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type)
27604  {
27605  using std::swap;
27606  swap(__one, __two);
27607  }
27608 
27609  template<typename _Alloc>
27610  inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type)
27611  { }
27612 
27613  template<typename _Alloc>
27614  inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two)
27615  {
27616  typedef allocator_traits<_Alloc> __traits;
27617  typedef typename __traits::propagate_on_container_swap __pocs;
27618  __do_alloc_on_swap(__one, __two, __pocs());
27619  }
27620 
27621  template<typename _Alloc>
27622  class __is_copy_insertable_impl
27623  {
27624  typedef allocator_traits<_Alloc> _Traits;
27625 
27626  template<typename _Up, typename
27627  = decltype(_Traits::construct(std::declval<_Alloc&>(),
27628  std::declval<_Up*>(),
27629  std::declval<const _Up&>()))>
27630  static true_type
27631  _M_select(int);
27632 
27633  template<typename _Up>
27634  static false_type
27635  _M_select(...);
27636 
27637  public:
27638  typedef decltype(_M_select<typename _Alloc::value_type>(0)) type;
27639  };
27640 
27641 
27642  template<typename _Alloc>
27643  struct __is_copy_insertable
27644  : __is_copy_insertable_impl<_Alloc>::type
27645  { };
27646 
27647 
27648  template<typename _Tp>
27649  struct __is_copy_insertable<allocator<_Tp>>
27650  : is_copy_constructible<_Tp>
27651  { };
27652 
27653 
27654 }
27655 # 37 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 2 3
27656 
27657 
27658 
27659 
27660 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
27661 {
27662 
27663 
27664 
27665  template<typename _Alloc>
27666  struct __allocator_always_compares_equal : std::false_type { };
27667 
27668  template<typename _Tp>
27669  struct __allocator_always_compares_equal<std::allocator<_Tp>>
27670  : std::true_type { };
27671 
27672  template<typename, typename> struct array_allocator;
27673 
27674  template<typename _Tp, typename _Array>
27675  struct __allocator_always_compares_equal<array_allocator<_Tp, _Array>>
27676  : std::true_type { };
27677 
27678  template<typename> struct bitmap_allocator;
27679 
27680  template<typename _Tp>
27681  struct __allocator_always_compares_equal<bitmap_allocator<_Tp>>
27682  : std::true_type { };
27683 
27684  template<typename> struct malloc_allocator;
27685 
27686  template<typename _Tp>
27687  struct __allocator_always_compares_equal<malloc_allocator<_Tp>>
27688  : std::true_type { };
27689 
27690  template<typename> struct mt_allocator;
27691 
27692  template<typename _Tp>
27693  struct __allocator_always_compares_equal<mt_allocator<_Tp>>
27694  : std::true_type { };
27695 
27696  template<typename> struct new_allocator;
27697 
27698  template<typename _Tp>
27699  struct __allocator_always_compares_equal<new_allocator<_Tp>>
27700  : std::true_type { };
27701 
27702  template<typename> struct pool_allocator;
27703 
27704  template<typename _Tp>
27705  struct __allocator_always_compares_equal<pool_allocator<_Tp>>
27706  : std::true_type { };
27707 
27708 
27709 
27710 
27711 
27712 
27713 template<typename _Alloc>
27714  struct __alloc_traits
27715 
27716  : std::allocator_traits<_Alloc>
27717 
27718  {
27719  typedef _Alloc allocator_type;
27720 
27721  typedef std::allocator_traits<_Alloc> _Base_type;
27722  typedef typename _Base_type::value_type value_type;
27723  typedef typename _Base_type::pointer pointer;
27724  typedef typename _Base_type::const_pointer const_pointer;
27725  typedef typename _Base_type::size_type size_type;
27726  typedef typename _Base_type::difference_type difference_type;
27727 
27728  typedef value_type& reference;
27729  typedef const value_type& const_reference;
27730  using _Base_type::allocate;
27731  using _Base_type::deallocate;
27732  using _Base_type::construct;
27733  using _Base_type::destroy;
27734  using _Base_type::max_size;
27735 
27736  private:
27737  template<typename _Ptr>
27738  using __is_custom_pointer
27739  = std::__and_<std::is_same<pointer, _Ptr>,
27740  std::__not_<std::is_pointer<_Ptr>>>;
27741 
27742  public:
27743 
27744  template<typename _Ptr, typename... _Args>
27745  static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
27746  construct(_Alloc& __a, _Ptr __p, _Args&&... __args)
27747  {
27748  _Base_type::construct(__a, std::addressof(*__p),
27749  std::forward<_Args>(__args)...);
27750  }
27751 
27752 
27753  template<typename _Ptr>
27754  static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
27755  destroy(_Alloc& __a, _Ptr __p)
27756  { _Base_type::destroy(__a, std::addressof(*__p)); }
27757 
27758  static _Alloc _S_select_on_copy(const _Alloc& __a)
27759  { return _Base_type::select_on_container_copy_construction(__a); }
27760 
27761  static void _S_on_swap(_Alloc& __a, _Alloc& __b)
27762  { std::__alloc_on_swap(__a, __b); }
27763 
27764  static constexpr bool _S_propagate_on_copy_assign()
27765  { return _Base_type::propagate_on_container_copy_assignment::value; }
27766 
27767  static constexpr bool _S_propagate_on_move_assign()
27768  { return _Base_type::propagate_on_container_move_assignment::value; }
27769 
27770  static constexpr bool _S_propagate_on_swap()
27771  { return _Base_type::propagate_on_container_swap::value; }
27772 
27773  static constexpr bool _S_always_equal()
27774  { return __allocator_always_compares_equal<_Alloc>::value; }
27775 
27776  static constexpr bool _S_nothrow_move()
27777  { return _S_propagate_on_move_assign() || _S_always_equal(); }
27778 
27779  static constexpr bool _S_nothrow_swap()
27780  {
27781  using std::swap;
27782  return !_S_propagate_on_swap()
27783  || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>()));
27784  }
27785 
27786  template<typename _Tp>
27787  struct rebind
27788  { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
27789 # 210 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/ext/alloc_traits.h" 3
27790  };
27791 
27792 
27793 }
27794 # 62 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 2 3
27795 
27796 namespace std __attribute__ ((__visibility__ ("default")))
27797 {
27798 
27799 
27800 
27801 
27802 
27803 
27804 
27805  template<typename _T1, typename... _Args>
27806  inline void
27807  _Construct(_T1* __p, _Args&&... __args)
27808  { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
27809 # 90 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_construct.h" 3
27810  template<typename _Tp>
27811  inline void
27812  _Destroy(_Tp* __pointer)
27813  { __pointer->~_Tp(); }
27814 
27815  template<bool>
27816  struct _Destroy_aux
27817  {
27818  template<typename _ForwardIterator>
27819  static void
27820  __destroy(_ForwardIterator __first, _ForwardIterator __last)
27821  {
27822  for (; __first != __last; ++__first)
27823  std::_Destroy(std::__addressof(*__first));
27824  }
27825  };
27826 
27827  template<>
27828  struct _Destroy_aux<true>
27829  {
27830  template<typename _ForwardIterator>
27831  static void
27832  __destroy(_ForwardIterator, _ForwardIterator) { }
27833  };
27834 
27835 
27836 
27837 
27838 
27839 
27840  template<typename _ForwardIterator>
27841  inline void
27842  _Destroy(_ForwardIterator __first, _ForwardIterator __last)
27843  {
27844  typedef typename iterator_traits<_ForwardIterator>::value_type
27845  _Value_type;
27846  std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
27847  __destroy(__first, __last);
27848  }
27849 
27850 
27851 
27852 
27853 
27854 
27855 
27856  template<typename _ForwardIterator, typename _Allocator>
27857  void
27858  _Destroy(_ForwardIterator __first, _ForwardIterator __last,
27859  _Allocator& __alloc)
27860  {
27861  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
27862  for (; __first != __last; ++__first)
27863  __traits::destroy(__alloc, std::__addressof(*__first));
27864  }
27865 
27866  template<typename _ForwardIterator, typename _Tp>
27867  inline void
27868  _Destroy(_ForwardIterator __first, _ForwardIterator __last,
27869  allocator<_Tp>&)
27870  {
27871  _Destroy(__first, __last);
27872  }
27873 
27874 
27875 }
27876 # 61 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 2 3
27877 
27878 namespace std __attribute__ ((__visibility__ ("default")))
27879 {
27880 # 83 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27881  template<typename _Tp>
27882  pair<_Tp*, ptrdiff_t>
27883  get_temporary_buffer(ptrdiff_t __len) noexcept
27884  {
27885  const ptrdiff_t __max =
27886  __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_Tp);
27887  if (__len > __max)
27888  __len = __max;
27889 
27890  while (__len > 0)
27891  {
27892  _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
27893  std::nothrow));
27894  if (__tmp != 0)
27895  return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
27896  __len /= 2;
27897  }
27898  return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
27899  }
27900 # 110 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
27901  template<typename _Tp>
27902  inline void
27903  return_temporary_buffer(_Tp* __p)
27904  { ::operator delete(__p, std::nothrow); }
27905 
27906 
27907 
27908 
27909 
27910 
27911 
27912  template<typename _ForwardIterator, typename _Tp>
27913  class _Temporary_buffer
27914  {
27915 
27916 
27917 
27918  public:
27919  typedef _Tp value_type;
27920  typedef value_type* pointer;
27921  typedef pointer iterator;
27922  typedef ptrdiff_t size_type;
27923 
27924  protected:
27925  size_type _M_original_len;
27926  size_type _M_len;
27927  pointer _M_buffer;
27928 
27929  public:
27930 
27931  size_type
27932  size() const
27933  { return _M_len; }
27934 
27935 
27936  size_type
27937  requested_size() const
27938  { return _M_original_len; }
27939 
27940 
27941  iterator
27942  begin()
27943  { return _M_buffer; }
27944 
27945 
27946  iterator
27947  end()
27948  { return _M_buffer + _M_len; }
27949 
27950 
27951 
27952 
27953 
27954  _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
27955 
27956  ~_Temporary_buffer()
27957  {
27958  std::_Destroy(_M_buffer, _M_buffer + _M_len);
27959  std::return_temporary_buffer(_M_buffer);
27960  }
27961 
27962  private:
27963 
27964  _Temporary_buffer(const _Temporary_buffer&);
27965 
27966  void
27967  operator=(const _Temporary_buffer&);
27968  };
27969 
27970 
27971  template<bool>
27972  struct __uninitialized_construct_buf_dispatch
27973  {
27974  template<typename _Pointer, typename _ForwardIterator>
27975  static void
27976  __ucr(_Pointer __first, _Pointer __last,
27977  _ForwardIterator __seed)
27978  {
27979  if(__first == __last)
27980  return;
27981 
27982  _Pointer __cur = __first;
27983  try
27984  {
27985  std::_Construct(std::__addressof(*__first),
27986  std::move(*__seed));
27987  _Pointer __prev = __cur;
27988  ++__cur;
27989  for(; __cur != __last; ++__cur, ++__prev)
27990  std::_Construct(std::__addressof(*__cur),
27991  std::move(*__prev));
27992  *__seed = std::move(*__prev);
27993  }
27994  catch(...)
27995  {
27996  std::_Destroy(__first, __cur);
27997  throw;
27998  }
27999  }
28000  };
28001 
28002  template<>
28003  struct __uninitialized_construct_buf_dispatch<true>
28004  {
28005  template<typename _Pointer, typename _ForwardIterator>
28006  static void
28007  __ucr(_Pointer, _Pointer, _ForwardIterator) { }
28008  };
28009 # 229 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_tempbuf.h" 3
28010  template<typename _Pointer, typename _ForwardIterator>
28011  inline void
28012  __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
28013  _ForwardIterator __seed)
28014  {
28015  typedef typename std::iterator_traits<_Pointer>::value_type
28016  _ValueType;
28017 
28018  std::__uninitialized_construct_buf_dispatch<
28019  __has_trivial_constructor(_ValueType)>::
28020  __ucr(__first, __last, __seed);
28021  }
28022 
28023  template<typename _ForwardIterator, typename _Tp>
28024  _Temporary_buffer<_ForwardIterator, _Tp>::
28025  _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
28026  : _M_original_len(std::distance(__first, __last)),
28027  _M_len(0), _M_buffer(0)
28028  {
28029  try
28030  {
28031  std::pair<pointer, size_type> __p(std::get_temporary_buffer<
28032  value_type>(_M_original_len));
28033  _M_buffer = __p.first;
28034  _M_len = __p.second;
28035  if (_M_buffer)
28036  std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len,
28037  __first);
28038  }
28039  catch(...)
28040  {
28041  std::return_temporary_buffer(_M_buffer);
28042  _M_buffer = 0;
28043  _M_len = 0;
28044  throw;
28045  }
28046  }
28047 
28048 
28049 }
28050 # 63 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_algo.h" 2 3
28051 
28052 
28053 
28054 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 1 3
28055 # 33 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 3
28056 
28057 
28058 
28059 
28060 
28061 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 1 3
28062 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
28063 
28064 
28065 
28066 
28067 # 1 "/usr/include/math.h" 1 3 4
28068 # 28 "/usr/include/math.h" 3 4
28069 extern "C" {
28070 
28071 
28072 
28073 
28074 # 1 "/usr/include/bits/huge_val.h" 1 3 4
28075 # 33 "/usr/include/math.h" 2 3 4
28076 
28077 # 1 "/usr/include/bits/huge_valf.h" 1 3 4
28078 # 35 "/usr/include/math.h" 2 3 4
28079 # 1 "/usr/include/bits/huge_vall.h" 1 3 4
28080 # 36 "/usr/include/math.h" 2 3 4
28081 
28082 
28083 # 1 "/usr/include/bits/inf.h" 1 3 4
28084 # 39 "/usr/include/math.h" 2 3 4
28085 
28086 
28087 # 1 "/usr/include/bits/nan.h" 1 3 4
28088 # 42 "/usr/include/math.h" 2 3 4
28089 
28090 
28091 
28092 # 1 "/usr/include/bits/mathdef.h" 1 3 4
28093 # 28 "/usr/include/bits/mathdef.h" 3 4
28094 typedef float float_t;
28095 typedef double double_t;
28096 # 46 "/usr/include/math.h" 2 3 4
28097 # 69 "/usr/include/math.h" 3 4
28098 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28099 # 54 "/usr/include/bits/mathcalls.h" 3 4
28100 extern double acos (double __x) throw (); extern double __acos (double __x) throw ();
28101 
28102 extern double asin (double __x) throw (); extern double __asin (double __x) throw ();
28103 
28104 extern double atan (double __x) throw (); extern double __atan (double __x) throw ();
28105 
28106 extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw ();
28107 
28108 
28109 extern double cos (double __x) throw (); extern double __cos (double __x) throw ();
28110 
28111 extern double sin (double __x) throw (); extern double __sin (double __x) throw ();
28112 
28113 extern double tan (double __x) throw (); extern double __tan (double __x) throw ();
28114 
28115 
28116 
28117 
28118 extern double cosh (double __x) throw (); extern double __cosh (double __x) throw ();
28119 
28120 extern double sinh (double __x) throw (); extern double __sinh (double __x) throw ();
28121 
28122 extern double tanh (double __x) throw (); extern double __tanh (double __x) throw ();
28123 
28124 
28125 
28126 
28127 extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw ();
28128 
28129 
28130 
28131 
28132 
28133 
28134 extern double acosh (double __x) throw (); extern double __acosh (double __x) throw ();
28135 
28136 extern double asinh (double __x) throw (); extern double __asinh (double __x) throw ();
28137 
28138 extern double atanh (double __x) throw (); extern double __atanh (double __x) throw ();
28139 
28140 
28141 
28142 
28143 
28144 
28145 
28146 extern double exp (double __x) throw (); extern double __exp (double __x) throw ();
28147 
28148 
28149 extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw ();
28150 
28151 
28152 extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw ();
28153 
28154 
28155 extern double log (double __x) throw (); extern double __log (double __x) throw ();
28156 
28157 
28158 extern double log10 (double __x) throw (); extern double __log10 (double __x) throw ();
28159 
28160 
28161 extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2)));
28162 
28163 
28164 
28165 
28166 extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw ();
28167 
28168 extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw ();
28169 
28170 
28171 
28172 
28173 
28174 extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw ();
28175 
28176 
28177 extern double log1p (double __x) throw (); extern double __log1p (double __x) throw ();
28178 
28179 
28180 extern double logb (double __x) throw (); extern double __logb (double __x) throw ();
28181 
28182 
28183 
28184 
28185 
28186 
28187 extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw ();
28188 
28189 
28190 extern double log2 (double __x) throw (); extern double __log2 (double __x) throw ();
28191 # 153 "/usr/include/bits/mathcalls.h" 3 4
28192 extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw ();
28193 
28194 
28195 extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw ();
28196 
28197 
28198 
28199 
28200 
28201 extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw ();
28202 
28203 
28204 
28205 
28206 
28207 
28208 extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw ();
28209 # 178 "/usr/include/bits/mathcalls.h" 3 4
28210 extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__));
28211 
28212 
28213 extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__));
28214 
28215 
28216 extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__));
28217 
28218 
28219 extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw ();
28220 
28221 
28222 
28223 
28224 extern int __isinf (double __value) throw () __attribute__ ((__const__));
28225 
28226 
28227 extern int __finite (double __value) throw () __attribute__ ((__const__));
28228 
28229 
28230 
28231 
28232 
28233 extern int isinf (double __value) throw () __attribute__ ((__const__));
28234 
28235 
28236 extern int finite (double __value) throw () __attribute__ ((__const__));
28237 
28238 
28239 extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw ();
28240 
28241 
28242 
28243 extern double significand (double __x) throw (); extern double __significand (double __x) throw ();
28244 
28245 
28246 
28247 
28248 
28249 extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__));
28250 
28251 
28252 
28253 
28254 
28255 
28256 extern double nan (const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (const char *__tagb) throw () __attribute__ ((__const__));
28257 
28258 
28259 
28260 
28261 
28262 extern int __isnan (double __value) throw () __attribute__ ((__const__));
28263 
28264 
28265 
28266 extern int isnan (double __value) throw () __attribute__ ((__const__));
28267 
28268 
28269 extern double j0 (double) throw (); extern double __j0 (double) throw ();
28270 extern double j1 (double) throw (); extern double __j1 (double) throw ();
28271 extern double jn (int, double) throw (); extern double __jn (int, double) throw ();
28272 extern double y0 (double) throw (); extern double __y0 (double) throw ();
28273 extern double y1 (double) throw (); extern double __y1 (double) throw ();
28274 extern double yn (int, double) throw (); extern double __yn (int, double) throw ();
28275 
28276 
28277 
28278 
28279 
28280 
28281 extern double erf (double) throw (); extern double __erf (double) throw ();
28282 extern double erfc (double) throw (); extern double __erfc (double) throw ();
28283 extern double lgamma (double) throw (); extern double __lgamma (double) throw ();
28284 
28285 
28286 
28287 
28288 
28289 
28290 extern double tgamma (double) throw (); extern double __tgamma (double) throw ();
28291 
28292 
28293 
28294 
28295 
28296 extern double gamma (double) throw (); extern double __gamma (double) throw ();
28297 
28298 
28299 
28300 
28301 
28302 
28303 extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw ();
28304 
28305 
28306 
28307 
28308 
28309 
28310 
28311 extern double rint (double __x) throw (); extern double __rint (double __x) throw ();
28312 
28313 
28314 extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__));
28315 
28316 extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__));
28317 
28318 
28319 
28320 extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw ();
28321 
28322 
28323 
28324 extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw ();
28325 
28326 
28327 
28328 extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw ();
28329 
28330 
28331 
28332 
28333 extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw ();
28334 
28335 
28336 
28337 extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw ();
28338 
28339 
28340 
28341 extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__));
28342 
28343 
28344 
28345 extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__));
28346 
28347 
28348 
28349 
28350 extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw ();
28351 
28352 
28353 
28354 
28355 
28356 
28357 extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw ();
28358 __extension__
28359 extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw ();
28360 
28361 
28362 
28363 extern long int lround (double __x) throw (); extern long int __lround (double __x) throw ();
28364 __extension__
28365 extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw ();
28366 
28367 
28368 
28369 extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw ();
28370 
28371 
28372 extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__));
28373 
28374 
28375 extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__));
28376 
28377 
28378 
28379 extern int __fpclassify (double __value) throw ()
28380  __attribute__ ((__const__));
28381 
28382 
28383 extern int __signbit (double __value) throw ()
28384  __attribute__ ((__const__));
28385 
28386 
28387 
28388 extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw ();
28389 # 365 "/usr/include/bits/mathcalls.h" 3 4
28390 extern int __issignaling (double __value) throw ()
28391  __attribute__ ((__const__));
28392 
28393 
28394 
28395 
28396 extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw ();
28397 # 70 "/usr/include/math.h" 2 3 4
28398 # 88 "/usr/include/math.h" 3 4
28399 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28400 # 54 "/usr/include/bits/mathcalls.h" 3 4
28401 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw ();
28402 
28403 extern float asinf (float __x) throw (); extern float __asinf (float __x) throw ();
28404 
28405 extern float atanf (float __x) throw (); extern float __atanf (float __x) throw ();
28406 
28407 extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw ();
28408 
28409 
28410 extern float cosf (float __x) throw (); extern float __cosf (float __x) throw ();
28411 
28412 extern float sinf (float __x) throw (); extern float __sinf (float __x) throw ();
28413 
28414 extern float tanf (float __x) throw (); extern float __tanf (float __x) throw ();
28415 
28416 
28417 
28418 
28419 extern float coshf (float __x) throw (); extern float __coshf (float __x) throw ();
28420 
28421 extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw ();
28422 
28423 extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw ();
28424 
28425 
28426 
28427 
28428 extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw ();
28429 
28430 
28431 
28432 
28433 
28434 
28435 extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw ();
28436 
28437 extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw ();
28438 
28439 extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw ();
28440 
28441 
28442 
28443 
28444 
28445 
28446 
28447 extern float expf (float __x) throw (); extern float __expf (float __x) throw ();
28448 
28449 
28450 extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw ();
28451 
28452 
28453 extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw ();
28454 
28455 
28456 extern float logf (float __x) throw (); extern float __logf (float __x) throw ();
28457 
28458 
28459 extern float log10f (float __x) throw (); extern float __log10f (float __x) throw ();
28460 
28461 
28462 extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2)));
28463 
28464 
28465 
28466 
28467 extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw ();
28468 
28469 extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw ();
28470 
28471 
28472 
28473 
28474 
28475 extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw ();
28476 
28477 
28478 extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw ();
28479 
28480 
28481 extern float logbf (float __x) throw (); extern float __logbf (float __x) throw ();
28482 
28483 
28484 
28485 
28486 
28487 
28488 extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw ();
28489 
28490 
28491 extern float log2f (float __x) throw (); extern float __log2f (float __x) throw ();
28492 # 153 "/usr/include/bits/mathcalls.h" 3 4
28493 extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw ();
28494 
28495 
28496 extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw ();
28497 
28498 
28499 
28500 
28501 
28502 extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw ();
28503 
28504 
28505 
28506 
28507 
28508 
28509 extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw ();
28510 # 178 "/usr/include/bits/mathcalls.h" 3 4
28511 extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__));
28512 
28513 
28514 extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__));
28515 
28516 
28517 extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__));
28518 
28519 
28520 extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw ();
28521 
28522 
28523 
28524 
28525 extern int __isinff (float __value) throw () __attribute__ ((__const__));
28526 
28527 
28528 extern int __finitef (float __value) throw () __attribute__ ((__const__));
28529 
28530 
28531 
28532 
28533 
28534 extern int isinff (float __value) throw () __attribute__ ((__const__));
28535 
28536 
28537 extern int finitef (float __value) throw () __attribute__ ((__const__));
28538 
28539 
28540 extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw ();
28541 
28542 
28543 
28544 extern float significandf (float __x) throw (); extern float __significandf (float __x) throw ();
28545 
28546 
28547 
28548 
28549 
28550 extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__));
28551 
28552 
28553 
28554 
28555 
28556 
28557 extern float nanf (const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (const char *__tagb) throw () __attribute__ ((__const__));
28558 
28559 
28560 
28561 
28562 
28563 extern int __isnanf (float __value) throw () __attribute__ ((__const__));
28564 
28565 
28566 
28567 extern int isnanf (float __value) throw () __attribute__ ((__const__));
28568 
28569 
28570 extern float j0f (float) throw (); extern float __j0f (float) throw ();
28571 extern float j1f (float) throw (); extern float __j1f (float) throw ();
28572 extern float jnf (int, float) throw (); extern float __jnf (int, float) throw ();
28573 extern float y0f (float) throw (); extern float __y0f (float) throw ();
28574 extern float y1f (float) throw (); extern float __y1f (float) throw ();
28575 extern float ynf (int, float) throw (); extern float __ynf (int, float) throw ();
28576 
28577 
28578 
28579 
28580 
28581 
28582 extern float erff (float) throw (); extern float __erff (float) throw ();
28583 extern float erfcf (float) throw (); extern float __erfcf (float) throw ();
28584 extern float lgammaf (float) throw (); extern float __lgammaf (float) throw ();
28585 
28586 
28587 
28588 
28589 
28590 
28591 extern float tgammaf (float) throw (); extern float __tgammaf (float) throw ();
28592 
28593 
28594 
28595 
28596 
28597 extern float gammaf (float) throw (); extern float __gammaf (float) throw ();
28598 
28599 
28600 
28601 
28602 
28603 
28604 extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw ();
28605 
28606 
28607 
28608 
28609 
28610 
28611 
28612 extern float rintf (float __x) throw (); extern float __rintf (float __x) throw ();
28613 
28614 
28615 extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__));
28616 
28617 extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__));
28618 
28619 
28620 
28621 extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw ();
28622 
28623 
28624 
28625 extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw ();
28626 
28627 
28628 
28629 extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw ();
28630 
28631 
28632 
28633 
28634 extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw ();
28635 
28636 
28637 
28638 extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw ();
28639 
28640 
28641 
28642 extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__));
28643 
28644 
28645 
28646 extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__));
28647 
28648 
28649 
28650 
28651 extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw ();
28652 
28653 
28654 
28655 
28656 
28657 
28658 extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw ();
28659 __extension__
28660 extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw ();
28661 
28662 
28663 
28664 extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw ();
28665 __extension__
28666 extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw ();
28667 
28668 
28669 
28670 extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw ();
28671 
28672 
28673 extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__));
28674 
28675 
28676 extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__));
28677 
28678 
28679 
28680 extern int __fpclassifyf (float __value) throw ()
28681  __attribute__ ((__const__));
28682 
28683 
28684 extern int __signbitf (float __value) throw ()
28685  __attribute__ ((__const__));
28686 
28687 
28688 
28689 extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw ();
28690 # 365 "/usr/include/bits/mathcalls.h" 3 4
28691 extern int __issignalingf (float __value) throw ()
28692  __attribute__ ((__const__));
28693 
28694 
28695 
28696 
28697 extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw ();
28698 # 89 "/usr/include/math.h" 2 3 4
28699 # 132 "/usr/include/math.h" 3 4
28700 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
28701 # 54 "/usr/include/bits/mathcalls.h" 3 4
28702 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw ();
28703 
28704 extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw ();
28705 
28706 extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw ();
28707 
28708 extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw ();
28709 
28710 
28711 extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw ();
28712 
28713 extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw ();
28714 
28715 extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw ();
28716 
28717 
28718 
28719 
28720 extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw ();
28721 
28722 extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw ();
28723 
28724 extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw ();
28725 
28726 
28727 
28728 
28729 extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw ();
28730 
28731 
28732 
28733 
28734 
28735 
28736 extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw ();
28737 
28738 extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw ();
28739 
28740 extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw ();
28741 
28742 
28743 
28744 
28745 
28746 
28747 
28748 extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw ();
28749 
28750 
28751 extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw ();
28752 
28753 
28754 extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw ();
28755 
28756 
28757 extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw ();
28758 
28759 
28760 extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw ();
28761 
28762 
28763 extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2)));
28764 
28765 
28766 
28767 
28768 extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw ();
28769 
28770 extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw ();
28771 
28772 
28773 
28774 
28775 
28776 extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw ();
28777 
28778 
28779 extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw ();
28780 
28781 
28782 extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw ();
28783 
28784 
28785 
28786 
28787 
28788 
28789 extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw ();
28790 
28791 
28792 extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw ();
28793 # 153 "/usr/include/bits/mathcalls.h" 3 4
28794 extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw ();
28795 
28796 
28797 extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw ();
28798 
28799 
28800 
28801 
28802 
28803 extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw ();
28804 
28805 
28806 
28807 
28808 
28809 
28810 extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw ();
28811 # 178 "/usr/include/bits/mathcalls.h" 3 4
28812 extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__));
28813 
28814 
28815 extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__));
28816 
28817 
28818 extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__));
28819 
28820 
28821 extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw ();
28822 
28823 
28824 
28825 
28826 extern int __isinfl (long double __value) throw () __attribute__ ((__const__));
28827 
28828 
28829 extern int __finitel (long double __value) throw () __attribute__ ((__const__));
28830 
28831 
28832 
28833 
28834 
28835 extern int isinfl (long double __value) throw () __attribute__ ((__const__));
28836 
28837 
28838 extern int finitel (long double __value) throw () __attribute__ ((__const__));
28839 
28840 
28841 extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw ();
28842 
28843 
28844 
28845 extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw ();
28846 
28847 
28848 
28849 
28850 
28851 extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__));
28852 
28853 
28854 
28855 
28856 
28857 
28858 extern long double nanl (const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) throw () __attribute__ ((__const__));
28859 
28860 
28861 
28862 
28863 
28864 extern int __isnanl (long double __value) throw () __attribute__ ((__const__));
28865 
28866 
28867 
28868 extern int isnanl (long double __value) throw () __attribute__ ((__const__));
28869 
28870 
28871 extern long double j0l (long double) throw (); extern long double __j0l (long double) throw ();
28872 extern long double j1l (long double) throw (); extern long double __j1l (long double) throw ();
28873 extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw ();
28874 extern long double y0l (long double) throw (); extern long double __y0l (long double) throw ();
28875 extern long double y1l (long double) throw (); extern long double __y1l (long double) throw ();
28876 extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw ();
28877 
28878 
28879 
28880 
28881 
28882 
28883 extern long double erfl (long double) throw (); extern long double __erfl (long double) throw ();
28884 extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw ();
28885 extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw ();
28886 
28887 
28888 
28889 
28890 
28891 
28892 extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw ();
28893 
28894 
28895 
28896 
28897 
28898 extern long double gammal (long double) throw (); extern long double __gammal (long double) throw ();
28899 
28900 
28901 
28902 
28903 
28904 
28905 extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw ();
28906 
28907 
28908 
28909 
28910 
28911 
28912 
28913 extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw ();
28914 
28915 
28916 extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__));
28917 
28918 extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__));
28919 
28920 
28921 
28922 extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw ();
28923 
28924 
28925 
28926 extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw ();
28927 
28928 
28929 
28930 extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw ();
28931 
28932 
28933 
28934 
28935 extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw ();
28936 
28937 
28938 
28939 extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw ();
28940 
28941 
28942 
28943 extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__));
28944 
28945 
28946 
28947 extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__));
28948 
28949 
28950 
28951 
28952 extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw ();
28953 
28954 
28955 
28956 
28957 
28958 
28959 extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw ();
28960 __extension__
28961 extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw ();
28962 
28963 
28964 
28965 extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw ();
28966 __extension__
28967 extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw ();
28968 
28969 
28970 
28971 extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw ();
28972 
28973 
28974 extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__));
28975 
28976 
28977 extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__));
28978 
28979 
28980 
28981 extern int __fpclassifyl (long double __value) throw ()
28982  __attribute__ ((__const__));
28983 
28984 
28985 extern int __signbitl (long double __value) throw ()
28986  __attribute__ ((__const__));
28987 
28988 
28989 
28990 extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw ();
28991 # 365 "/usr/include/bits/mathcalls.h" 3 4
28992 extern int __issignalingl (long double __value) throw ()
28993  __attribute__ ((__const__));
28994 
28995 
28996 
28997 
28998 extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw ();
28999 # 133 "/usr/include/math.h" 2 3 4
29000 # 148 "/usr/include/math.h" 3 4
29001 extern int signgam;
29002 # 189 "/usr/include/math.h" 3 4
29003 enum
29004  {
29005  FP_NAN =
29006 
29007  0,
29008  FP_INFINITE =
29009 
29010  1,
29011  FP_ZERO =
29012 
29013  2,
29014  FP_SUBNORMAL =
29015 
29016  3,
29017  FP_NORMAL =
29018 
29019  4
29020  };
29021 # 301 "/usr/include/math.h" 3 4
29022 typedef enum
29023 {
29024  _IEEE_ = -1,
29025  _SVID_,
29026  _XOPEN_,
29027  _POSIX_,
29028  _ISOC_
29029 } _LIB_VERSION_TYPE;
29030 
29031 
29032 
29033 
29034 extern _LIB_VERSION_TYPE _LIB_VERSION;
29035 # 324 "/usr/include/math.h" 3 4
29036 struct __exception
29037 
29038 
29039 
29040  {
29041  int type;
29042  char *name;
29043  double arg1;
29044  double arg2;
29045  double retval;
29046  };
29047 
29048 
29049 extern int matherr (struct __exception *__exc) throw ();
29050 # 488 "/usr/include/math.h" 3 4
29051 }
29052 # 45 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 2 3
29053 # 75 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29054 namespace std __attribute__ ((__visibility__ ("default")))
29055 {
29056 
29057 
29058 
29059  inline constexpr double
29060  abs(double __x)
29061  { return __builtin_fabs(__x); }
29062 
29063 
29064 
29065  inline constexpr float
29066  abs(float __x)
29067  { return __builtin_fabsf(__x); }
29068 
29069  inline constexpr long double
29070  abs(long double __x)
29071  { return __builtin_fabsl(__x); }
29072 
29073 
29074  template<typename _Tp>
29075  inline constexpr
29076  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29077  double>::__type
29078  abs(_Tp __x)
29079  { return __builtin_fabs(__x); }
29080 
29081  using ::acos;
29082 
29083 
29084  inline constexpr float
29085  acos(float __x)
29086  { return __builtin_acosf(__x); }
29087 
29088  inline constexpr long double
29089  acos(long double __x)
29090  { return __builtin_acosl(__x); }
29091 
29092 
29093  template<typename _Tp>
29094  inline constexpr
29095  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29096  double>::__type
29097  acos(_Tp __x)
29098  { return __builtin_acos(__x); }
29099 
29100  using ::asin;
29101 
29102 
29103  inline constexpr float
29104  asin(float __x)
29105  { return __builtin_asinf(__x); }
29106 
29107  inline constexpr long double
29108  asin(long double __x)
29109  { return __builtin_asinl(__x); }
29110 
29111 
29112  template<typename _Tp>
29113  inline constexpr
29114  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29115  double>::__type
29116  asin(_Tp __x)
29117  { return __builtin_asin(__x); }
29118 
29119  using ::atan;
29120 
29121 
29122  inline constexpr float
29123  atan(float __x)
29124  { return __builtin_atanf(__x); }
29125 
29126  inline constexpr long double
29127  atan(long double __x)
29128  { return __builtin_atanl(__x); }
29129 
29130 
29131  template<typename _Tp>
29132  inline constexpr
29133  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29134  double>::__type
29135  atan(_Tp __x)
29136  { return __builtin_atan(__x); }
29137 
29138  using ::atan2;
29139 
29140 
29141  inline constexpr float
29142  atan2(float __y, float __x)
29143  { return __builtin_atan2f(__y, __x); }
29144 
29145  inline constexpr long double
29146  atan2(long double __y, long double __x)
29147  { return __builtin_atan2l(__y, __x); }
29148 
29149 
29150  template<typename _Tp, typename _Up>
29151  inline constexpr
29152  typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29153  atan2(_Tp __y, _Up __x)
29154  {
29155  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29156  return atan2(__type(__y), __type(__x));
29157  }
29158 
29159  using ::ceil;
29160 
29161 
29162  inline constexpr float
29163  ceil(float __x)
29164  { return __builtin_ceilf(__x); }
29165 
29166  inline constexpr long double
29167  ceil(long double __x)
29168  { return __builtin_ceill(__x); }
29169 
29170 
29171  template<typename _Tp>
29172  inline constexpr
29173  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29174  double>::__type
29175  ceil(_Tp __x)
29176  { return __builtin_ceil(__x); }
29177 
29178  using ::cos;
29179 
29180 
29181  inline constexpr float
29182  cos(float __x)
29183  { return __builtin_cosf(__x); }
29184 
29185  inline constexpr long double
29186  cos(long double __x)
29187  { return __builtin_cosl(__x); }
29188 
29189 
29190  template<typename _Tp>
29191  inline constexpr
29192  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29193  double>::__type
29194  cos(_Tp __x)
29195  { return __builtin_cos(__x); }
29196 
29197  using ::cosh;
29198 
29199 
29200  inline constexpr float
29201  cosh(float __x)
29202  { return __builtin_coshf(__x); }
29203 
29204  inline constexpr long double
29205  cosh(long double __x)
29206  { return __builtin_coshl(__x); }
29207 
29208 
29209  template<typename _Tp>
29210  inline constexpr
29211  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29212  double>::__type
29213  cosh(_Tp __x)
29214  { return __builtin_cosh(__x); }
29215 
29216  using ::exp;
29217 
29218 
29219  inline constexpr float
29220  exp(float __x)
29221  { return __builtin_expf(__x); }
29222 
29223  inline constexpr long double
29224  exp(long double __x)
29225  { return __builtin_expl(__x); }
29226 
29227 
29228  template<typename _Tp>
29229  inline constexpr
29230  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29231  double>::__type
29232  exp(_Tp __x)
29233  { return __builtin_exp(__x); }
29234 
29235  using ::fabs;
29236 
29237 
29238  inline constexpr float
29239  fabs(float __x)
29240  { return __builtin_fabsf(__x); }
29241 
29242  inline constexpr long double
29243  fabs(long double __x)
29244  { return __builtin_fabsl(__x); }
29245 
29246 
29247  template<typename _Tp>
29248  inline constexpr
29249  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29250  double>::__type
29251  fabs(_Tp __x)
29252  { return __builtin_fabs(__x); }
29253 
29254  using ::floor;
29255 
29256 
29257  inline constexpr float
29258  floor(float __x)
29259  { return __builtin_floorf(__x); }
29260 
29261  inline constexpr long double
29262  floor(long double __x)
29263  { return __builtin_floorl(__x); }
29264 
29265 
29266  template<typename _Tp>
29267  inline constexpr
29268  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29269  double>::__type
29270  floor(_Tp __x)
29271  { return __builtin_floor(__x); }
29272 
29273  using ::fmod;
29274 
29275 
29276  inline constexpr float
29277  fmod(float __x, float __y)
29278  { return __builtin_fmodf(__x, __y); }
29279 
29280  inline constexpr long double
29281  fmod(long double __x, long double __y)
29282  { return __builtin_fmodl(__x, __y); }
29283 
29284 
29285  template<typename _Tp, typename _Up>
29286  inline constexpr
29287  typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29288  fmod(_Tp __x, _Up __y)
29289  {
29290  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29291  return fmod(__type(__x), __type(__y));
29292  }
29293 
29294  using ::frexp;
29295 
29296 
29297  inline float
29298  frexp(float __x, int* __exp)
29299  { return __builtin_frexpf(__x, __exp); }
29300 
29301  inline long double
29302  frexp(long double __x, int* __exp)
29303  { return __builtin_frexpl(__x, __exp); }
29304 
29305 
29306  template<typename _Tp>
29307  inline constexpr
29308  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29309  double>::__type
29310  frexp(_Tp __x, int* __exp)
29311  { return __builtin_frexp(__x, __exp); }
29312 
29313  using ::ldexp;
29314 
29315 
29316  inline constexpr float
29317  ldexp(float __x, int __exp)
29318  { return __builtin_ldexpf(__x, __exp); }
29319 
29320  inline constexpr long double
29321  ldexp(long double __x, int __exp)
29322  { return __builtin_ldexpl(__x, __exp); }
29323 
29324 
29325  template<typename _Tp>
29326  inline constexpr
29327  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29328  double>::__type
29329  ldexp(_Tp __x, int __exp)
29330  { return __builtin_ldexp(__x, __exp); }
29331 
29332  using ::log;
29333 
29334 
29335  inline constexpr float
29336  log(float __x)
29337  { return __builtin_logf(__x); }
29338 
29339  inline constexpr long double
29340  log(long double __x)
29341  { return __builtin_logl(__x); }
29342 
29343 
29344  template<typename _Tp>
29345  inline constexpr
29346  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29347  double>::__type
29348  log(_Tp __x)
29349  { return __builtin_log(__x); }
29350 
29351  using ::log10;
29352 
29353 
29354  inline constexpr float
29355  log10(float __x)
29356  { return __builtin_log10f(__x); }
29357 
29358  inline constexpr long double
29359  log10(long double __x)
29360  { return __builtin_log10l(__x); }
29361 
29362 
29363  template<typename _Tp>
29364  inline constexpr
29365  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29366  double>::__type
29367  log10(_Tp __x)
29368  { return __builtin_log10(__x); }
29369 
29370  using ::modf;
29371 
29372 
29373  inline float
29374  modf(float __x, float* __iptr)
29375  { return __builtin_modff(__x, __iptr); }
29376 
29377  inline long double
29378  modf(long double __x, long double* __iptr)
29379  { return __builtin_modfl(__x, __iptr); }
29380 
29381 
29382  using ::pow;
29383 
29384 
29385  inline constexpr float
29386  pow(float __x, float __y)
29387  { return __builtin_powf(__x, __y); }
29388 
29389  inline constexpr long double
29390  pow(long double __x, long double __y)
29391  { return __builtin_powl(__x, __y); }
29392 # 431 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29393  template<typename _Tp, typename _Up>
29394  inline constexpr
29395  typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29396  pow(_Tp __x, _Up __y)
29397  {
29398  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29399  return pow(__type(__x), __type(__y));
29400  }
29401 
29402  using ::sin;
29403 
29404 
29405  inline constexpr float
29406  sin(float __x)
29407  { return __builtin_sinf(__x); }
29408 
29409  inline constexpr long double
29410  sin(long double __x)
29411  { return __builtin_sinl(__x); }
29412 
29413 
29414  template<typename _Tp>
29415  inline constexpr
29416  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29417  double>::__type
29418  sin(_Tp __x)
29419  { return __builtin_sin(__x); }
29420 
29421  using ::sinh;
29422 
29423 
29424  inline constexpr float
29425  sinh(float __x)
29426  { return __builtin_sinhf(__x); }
29427 
29428  inline constexpr long double
29429  sinh(long double __x)
29430  { return __builtin_sinhl(__x); }
29431 
29432 
29433  template<typename _Tp>
29434  inline constexpr
29435  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29436  double>::__type
29437  sinh(_Tp __x)
29438  { return __builtin_sinh(__x); }
29439 
29440  using ::sqrt;
29441 
29442 
29443  inline constexpr float
29444  sqrt(float __x)
29445  { return __builtin_sqrtf(__x); }
29446 
29447  inline constexpr long double
29448  sqrt(long double __x)
29449  { return __builtin_sqrtl(__x); }
29450 
29451 
29452  template<typename _Tp>
29453  inline constexpr
29454  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29455  double>::__type
29456  sqrt(_Tp __x)
29457  { return __builtin_sqrt(__x); }
29458 
29459  using ::tan;
29460 
29461 
29462  inline constexpr float
29463  tan(float __x)
29464  { return __builtin_tanf(__x); }
29465 
29466  inline constexpr long double
29467  tan(long double __x)
29468  { return __builtin_tanl(__x); }
29469 
29470 
29471  template<typename _Tp>
29472  inline constexpr
29473  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29474  double>::__type
29475  tan(_Tp __x)
29476  { return __builtin_tan(__x); }
29477 
29478  using ::tanh;
29479 
29480 
29481  inline constexpr float
29482  tanh(float __x)
29483  { return __builtin_tanhf(__x); }
29484 
29485  inline constexpr long double
29486  tanh(long double __x)
29487  { return __builtin_tanhl(__x); }
29488 
29489 
29490  template<typename _Tp>
29491  inline constexpr
29492  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29493  double>::__type
29494  tanh(_Tp __x)
29495  { return __builtin_tanh(__x); }
29496 
29497 
29498 }
29499 # 555 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29500 namespace std __attribute__ ((__visibility__ ("default")))
29501 {
29502 
29503 
29504 
29505  constexpr int
29506  fpclassify(float __x)
29507  { return __builtin_fpclassify(0, 1, 4,
29508  3, 2, __x); }
29509 
29510  constexpr int
29511  fpclassify(double __x)
29512  { return __builtin_fpclassify(0, 1, 4,
29513  3, 2, __x); }
29514 
29515  constexpr int
29516  fpclassify(long double __x)
29517  { return __builtin_fpclassify(0, 1, 4,
29518  3, 2, __x); }
29519 
29520  template<typename _Tp>
29521  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29522  int>::__type
29523  fpclassify(_Tp __x)
29524  { return __x != 0 ? 4 : 2; }
29525 
29526  constexpr bool
29527  isfinite(float __x)
29528  { return __builtin_isfinite(__x); }
29529 
29530  constexpr bool
29531  isfinite(double __x)
29532  { return __builtin_isfinite(__x); }
29533 
29534  constexpr bool
29535  isfinite(long double __x)
29536  { return __builtin_isfinite(__x); }
29537 
29538  template<typename _Tp>
29539  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29540  bool>::__type
29541  isfinite(_Tp __x)
29542  { return true; }
29543 
29544  constexpr bool
29545  isinf(float __x)
29546  { return __builtin_isinf(__x); }
29547 
29548  constexpr bool
29549  isinf(double __x)
29550  { return __builtin_isinf(__x); }
29551 
29552  constexpr bool
29553  isinf(long double __x)
29554  { return __builtin_isinf(__x); }
29555 
29556  template<typename _Tp>
29557  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29558  bool>::__type
29559  isinf(_Tp __x)
29560  { return false; }
29561 
29562  constexpr bool
29563  isnan(float __x)
29564  { return __builtin_isnan(__x); }
29565 
29566  constexpr bool
29567  isnan(double __x)
29568  { return __builtin_isnan(__x); }
29569 
29570  constexpr bool
29571  isnan(long double __x)
29572  { return __builtin_isnan(__x); }
29573 
29574  template<typename _Tp>
29575  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29576  bool>::__type
29577  isnan(_Tp __x)
29578  { return false; }
29579 
29580  constexpr bool
29581  isnormal(float __x)
29582  { return __builtin_isnormal(__x); }
29583 
29584  constexpr bool
29585  isnormal(double __x)
29586  { return __builtin_isnormal(__x); }
29587 
29588  constexpr bool
29589  isnormal(long double __x)
29590  { return __builtin_isnormal(__x); }
29591 
29592  template<typename _Tp>
29593  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29594  bool>::__type
29595  isnormal(_Tp __x)
29596  { return __x != 0 ? true : false; }
29597 
29598 
29599  constexpr bool
29600  signbit(float __x)
29601  { return __builtin_signbitf(__x); }
29602 
29603  constexpr bool
29604  signbit(double __x)
29605  { return __builtin_signbit(__x); }
29606 
29607  constexpr bool
29608  signbit(long double __x)
29609  { return __builtin_signbitl(__x); }
29610 
29611  template<typename _Tp>
29612  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29613  bool>::__type
29614  signbit(_Tp __x)
29615  { return __x < 0 ? true : false; }
29616 
29617  constexpr bool
29618  isgreater(float __x, float __y)
29619  { return __builtin_isgreater(__x, __y); }
29620 
29621  constexpr bool
29622  isgreater(double __x, double __y)
29623  { return __builtin_isgreater(__x, __y); }
29624 
29625  constexpr bool
29626  isgreater(long double __x, long double __y)
29627  { return __builtin_isgreater(__x, __y); }
29628 
29629  template<typename _Tp, typename _Up>
29630  constexpr typename
29631  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29632  && __is_arithmetic<_Up>::__value), bool>::__type
29633  isgreater(_Tp __x, _Up __y)
29634  {
29635  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29636  return __builtin_isgreater(__type(__x), __type(__y));
29637  }
29638 
29639  constexpr bool
29640  isgreaterequal(float __x, float __y)
29641  { return __builtin_isgreaterequal(__x, __y); }
29642 
29643  constexpr bool
29644  isgreaterequal(double __x, double __y)
29645  { return __builtin_isgreaterequal(__x, __y); }
29646 
29647  constexpr bool
29648  isgreaterequal(long double __x, long double __y)
29649  { return __builtin_isgreaterequal(__x, __y); }
29650 
29651  template<typename _Tp, typename _Up>
29652  constexpr typename
29653  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29654  && __is_arithmetic<_Up>::__value), bool>::__type
29655  isgreaterequal(_Tp __x, _Up __y)
29656  {
29657  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29658  return __builtin_isgreaterequal(__type(__x), __type(__y));
29659  }
29660 
29661  constexpr bool
29662  isless(float __x, float __y)
29663  { return __builtin_isless(__x, __y); }
29664 
29665  constexpr bool
29666  isless(double __x, double __y)
29667  { return __builtin_isless(__x, __y); }
29668 
29669  constexpr bool
29670  isless(long double __x, long double __y)
29671  { return __builtin_isless(__x, __y); }
29672 
29673  template<typename _Tp, typename _Up>
29674  constexpr typename
29675  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29676  && __is_arithmetic<_Up>::__value), bool>::__type
29677  isless(_Tp __x, _Up __y)
29678  {
29679  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29680  return __builtin_isless(__type(__x), __type(__y));
29681  }
29682 
29683  constexpr bool
29684  islessequal(float __x, float __y)
29685  { return __builtin_islessequal(__x, __y); }
29686 
29687  constexpr bool
29688  islessequal(double __x, double __y)
29689  { return __builtin_islessequal(__x, __y); }
29690 
29691  constexpr bool
29692  islessequal(long double __x, long double __y)
29693  { return __builtin_islessequal(__x, __y); }
29694 
29695  template<typename _Tp, typename _Up>
29696  constexpr typename
29697  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29698  && __is_arithmetic<_Up>::__value), bool>::__type
29699  islessequal(_Tp __x, _Up __y)
29700  {
29701  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29702  return __builtin_islessequal(__type(__x), __type(__y));
29703  }
29704 
29705  constexpr bool
29706  islessgreater(float __x, float __y)
29707  { return __builtin_islessgreater(__x, __y); }
29708 
29709  constexpr bool
29710  islessgreater(double __x, double __y)
29711  { return __builtin_islessgreater(__x, __y); }
29712 
29713  constexpr bool
29714  islessgreater(long double __x, long double __y)
29715  { return __builtin_islessgreater(__x, __y); }
29716 
29717  template<typename _Tp, typename _Up>
29718  constexpr typename
29719  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29720  && __is_arithmetic<_Up>::__value), bool>::__type
29721  islessgreater(_Tp __x, _Up __y)
29722  {
29723  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29724  return __builtin_islessgreater(__type(__x), __type(__y));
29725  }
29726 
29727  constexpr bool
29728  isunordered(float __x, float __y)
29729  { return __builtin_isunordered(__x, __y); }
29730 
29731  constexpr bool
29732  isunordered(double __x, double __y)
29733  { return __builtin_isunordered(__x, __y); }
29734 
29735  constexpr bool
29736  isunordered(long double __x, long double __y)
29737  { return __builtin_isunordered(__x, __y); }
29738 
29739  template<typename _Tp, typename _Up>
29740  constexpr typename
29741  __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value
29742  && __is_arithmetic<_Up>::__value), bool>::__type
29743  isunordered(_Tp __x, _Up __y)
29744  {
29745  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29746  return __builtin_isunordered(__type(__x), __type(__y));
29747  }
29748 # 918 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29749 }
29750 # 1033 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cmath" 3
29751 namespace std __attribute__ ((__visibility__ ("default")))
29752 {
29753 
29754 
29755 
29756  using ::double_t;
29757  using ::float_t;
29758 
29759 
29760  using ::acosh;
29761  using ::acoshf;
29762  using ::acoshl;
29763 
29764  using ::asinh;
29765  using ::asinhf;
29766  using ::asinhl;
29767 
29768  using ::atanh;
29769  using ::atanhf;
29770  using ::atanhl;
29771 
29772  using ::cbrt;
29773  using ::cbrtf;
29774  using ::cbrtl;
29775 
29776  using ::copysign;
29777  using ::copysignf;
29778  using ::copysignl;
29779 
29780  using ::erf;
29781  using ::erff;
29782  using ::erfl;
29783 
29784  using ::erfc;
29785  using ::erfcf;
29786  using ::erfcl;
29787 
29788  using ::exp2;
29789  using ::exp2f;
29790  using ::exp2l;
29791 
29792  using ::expm1;
29793  using ::expm1f;
29794  using ::expm1l;
29795 
29796  using ::fdim;
29797  using ::fdimf;
29798  using ::fdiml;
29799 
29800  using ::fma;
29801  using ::fmaf;
29802  using ::fmal;
29803 
29804  using ::fmax;
29805  using ::fmaxf;
29806  using ::fmaxl;
29807 
29808  using ::fmin;
29809  using ::fminf;
29810  using ::fminl;
29811 
29812  using ::hypot;
29813  using ::hypotf;
29814  using ::hypotl;
29815 
29816  using ::ilogb;
29817  using ::ilogbf;
29818  using ::ilogbl;
29819 
29820  using ::lgamma;
29821  using ::lgammaf;
29822  using ::lgammal;
29823 
29824  using ::llrint;
29825  using ::llrintf;
29826  using ::llrintl;
29827 
29828  using ::llround;
29829  using ::llroundf;
29830  using ::llroundl;
29831 
29832  using ::log1p;
29833  using ::log1pf;
29834  using ::log1pl;
29835 
29836  using ::log2;
29837  using ::log2f;
29838  using ::log2l;
29839 
29840  using ::logb;
29841  using ::logbf;
29842  using ::logbl;
29843 
29844  using ::lrint;
29845  using ::lrintf;
29846  using ::lrintl;
29847 
29848  using ::lround;
29849  using ::lroundf;
29850  using ::lroundl;
29851 
29852  using ::nan;
29853  using ::nanf;
29854  using ::nanl;
29855 
29856  using ::nearbyint;
29857  using ::nearbyintf;
29858  using ::nearbyintl;
29859 
29860  using ::nextafter;
29861  using ::nextafterf;
29862  using ::nextafterl;
29863 
29864  using ::nexttoward;
29865  using ::nexttowardf;
29866  using ::nexttowardl;
29867 
29868  using ::remainder;
29869  using ::remainderf;
29870  using ::remainderl;
29871 
29872  using ::remquo;
29873  using ::remquof;
29874  using ::remquol;
29875 
29876  using ::rint;
29877  using ::rintf;
29878  using ::rintl;
29879 
29880  using ::round;
29881  using ::roundf;
29882  using ::roundl;
29883 
29884  using ::scalbln;
29885  using ::scalblnf;
29886  using ::scalblnl;
29887 
29888  using ::scalbn;
29889  using ::scalbnf;
29890  using ::scalbnl;
29891 
29892  using ::tgamma;
29893  using ::tgammaf;
29894  using ::tgammal;
29895 
29896  using ::trunc;
29897  using ::truncf;
29898  using ::truncl;
29899 
29900 
29901  constexpr float
29902  acosh(float __x)
29903  { return __builtin_acoshf(__x); }
29904 
29905  constexpr long double
29906  acosh(long double __x)
29907  { return __builtin_acoshl(__x); }
29908 
29909  template<typename _Tp>
29910  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29911  double>::__type
29912  acosh(_Tp __x)
29913  { return __builtin_acosh(__x); }
29914 
29915  constexpr float
29916  asinh(float __x)
29917  { return __builtin_asinhf(__x); }
29918 
29919  constexpr long double
29920  asinh(long double __x)
29921  { return __builtin_asinhl(__x); }
29922 
29923  template<typename _Tp>
29924  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29925  double>::__type
29926  asinh(_Tp __x)
29927  { return __builtin_asinh(__x); }
29928 
29929  constexpr float
29930  atanh(float __x)
29931  { return __builtin_atanhf(__x); }
29932 
29933  constexpr long double
29934  atanh(long double __x)
29935  { return __builtin_atanhl(__x); }
29936 
29937  template<typename _Tp>
29938  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29939  double>::__type
29940  atanh(_Tp __x)
29941  { return __builtin_atanh(__x); }
29942 
29943  constexpr float
29944  cbrt(float __x)
29945  { return __builtin_cbrtf(__x); }
29946 
29947  constexpr long double
29948  cbrt(long double __x)
29949  { return __builtin_cbrtl(__x); }
29950 
29951  template<typename _Tp>
29952  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29953  double>::__type
29954  cbrt(_Tp __x)
29955  { return __builtin_cbrt(__x); }
29956 
29957  constexpr float
29958  copysign(float __x, float __y)
29959  { return __builtin_copysignf(__x, __y); }
29960 
29961  constexpr long double
29962  copysign(long double __x, long double __y)
29963  { return __builtin_copysignl(__x, __y); }
29964 
29965  template<typename _Tp, typename _Up>
29966  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
29967  copysign(_Tp __x, _Up __y)
29968  {
29969  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
29970  return copysign(__type(__x), __type(__y));
29971  }
29972 
29973  constexpr float
29974  erf(float __x)
29975  { return __builtin_erff(__x); }
29976 
29977  constexpr long double
29978  erf(long double __x)
29979  { return __builtin_erfl(__x); }
29980 
29981  template<typename _Tp>
29982  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29983  double>::__type
29984  erf(_Tp __x)
29985  { return __builtin_erf(__x); }
29986 
29987  constexpr float
29988  erfc(float __x)
29989  { return __builtin_erfcf(__x); }
29990 
29991  constexpr long double
29992  erfc(long double __x)
29993  { return __builtin_erfcl(__x); }
29994 
29995  template<typename _Tp>
29996  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
29997  double>::__type
29998  erfc(_Tp __x)
29999  { return __builtin_erfc(__x); }
30000 
30001  constexpr float
30002  exp2(float __x)
30003  { return __builtin_exp2f(__x); }
30004 
30005  constexpr long double
30006  exp2(long double __x)
30007  { return __builtin_exp2l(__x); }
30008 
30009  template<typename _Tp>
30010  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30011  double>::__type
30012  exp2(_Tp __x)
30013  { return __builtin_exp2(__x); }
30014 
30015  constexpr float
30016  expm1(float __x)
30017  { return __builtin_expm1f(__x); }
30018 
30019  constexpr long double
30020  expm1(long double __x)
30021  { return __builtin_expm1l(__x); }
30022 
30023  template<typename _Tp>
30024  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30025  double>::__type
30026  expm1(_Tp __x)
30027  { return __builtin_expm1(__x); }
30028 
30029  constexpr float
30030  fdim(float __x, float __y)
30031  { return __builtin_fdimf(__x, __y); }
30032 
30033  constexpr long double
30034  fdim(long double __x, long double __y)
30035  { return __builtin_fdiml(__x, __y); }
30036 
30037  template<typename _Tp, typename _Up>
30038  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30039  fdim(_Tp __x, _Up __y)
30040  {
30041  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30042  return fdim(__type(__x), __type(__y));
30043  }
30044 
30045  constexpr float
30046  fma(float __x, float __y, float __z)
30047  { return __builtin_fmaf(__x, __y, __z); }
30048 
30049  constexpr long double
30050  fma(long double __x, long double __y, long double __z)
30051  { return __builtin_fmal(__x, __y, __z); }
30052 
30053  template<typename _Tp, typename _Up, typename _Vp>
30054  constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
30055  fma(_Tp __x, _Up __y, _Vp __z)
30056  {
30057  typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type;
30058  return fma(__type(__x), __type(__y), __type(__z));
30059  }
30060 
30061  constexpr float
30062  fmax(float __x, float __y)
30063  { return __builtin_fmaxf(__x, __y); }
30064 
30065  constexpr long double
30066  fmax(long double __x, long double __y)
30067  { return __builtin_fmaxl(__x, __y); }
30068 
30069  template<typename _Tp, typename _Up>
30070  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30071  fmax(_Tp __x, _Up __y)
30072  {
30073  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30074  return fmax(__type(__x), __type(__y));
30075  }
30076 
30077  constexpr float
30078  fmin(float __x, float __y)
30079  { return __builtin_fminf(__x, __y); }
30080 
30081  constexpr long double
30082  fmin(long double __x, long double __y)
30083  { return __builtin_fminl(__x, __y); }
30084 
30085  template<typename _Tp, typename _Up>
30086  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30087  fmin(_Tp __x, _Up __y)
30088  {
30089  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30090  return fmin(__type(__x), __type(__y));
30091  }
30092 
30093  constexpr float
30094  hypot(float __x, float __y)
30095  { return __builtin_hypotf(__x, __y); }
30096 
30097  constexpr long double
30098  hypot(long double __x, long double __y)
30099  { return __builtin_hypotl(__x, __y); }
30100 
30101  template<typename _Tp, typename _Up>
30102  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30103  hypot(_Tp __x, _Up __y)
30104  {
30105  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30106  return hypot(__type(__x), __type(__y));
30107  }
30108 
30109  constexpr int
30110  ilogb(float __x)
30111  { return __builtin_ilogbf(__x); }
30112 
30113  constexpr int
30114  ilogb(long double __x)
30115  { return __builtin_ilogbl(__x); }
30116 
30117  template<typename _Tp>
30118  constexpr
30119  typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30120  int>::__type
30121  ilogb(_Tp __x)
30122  { return __builtin_ilogb(__x); }
30123 
30124  constexpr float
30125  lgamma(float __x)
30126  { return __builtin_lgammaf(__x); }
30127 
30128  constexpr long double
30129  lgamma(long double __x)
30130  { return __builtin_lgammal(__x); }
30131 
30132  template<typename _Tp>
30133  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30134  double>::__type
30135  lgamma(_Tp __x)
30136  { return __builtin_lgamma(__x); }
30137 
30138  constexpr long long
30139  llrint(float __x)
30140  { return __builtin_llrintf(__x); }
30141 
30142  constexpr long long
30143  llrint(long double __x)
30144  { return __builtin_llrintl(__x); }
30145 
30146  template<typename _Tp>
30147  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30148  long long>::__type
30149  llrint(_Tp __x)
30150  { return __builtin_llrint(__x); }
30151 
30152  constexpr long long
30153  llround(float __x)
30154  { return __builtin_llroundf(__x); }
30155 
30156  constexpr long long
30157  llround(long double __x)
30158  { return __builtin_llroundl(__x); }
30159 
30160  template<typename _Tp>
30161  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30162  long long>::__type
30163  llround(_Tp __x)
30164  { return __builtin_llround(__x); }
30165 
30166  constexpr float
30167  log1p(float __x)
30168  { return __builtin_log1pf(__x); }
30169 
30170  constexpr long double
30171  log1p(long double __x)
30172  { return __builtin_log1pl(__x); }
30173 
30174  template<typename _Tp>
30175  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30176  double>::__type
30177  log1p(_Tp __x)
30178  { return __builtin_log1p(__x); }
30179 
30180 
30181  constexpr float
30182  log2(float __x)
30183  { return __builtin_log2f(__x); }
30184 
30185  constexpr long double
30186  log2(long double __x)
30187  { return __builtin_log2l(__x); }
30188 
30189  template<typename _Tp>
30190  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30191  double>::__type
30192  log2(_Tp __x)
30193  { return __builtin_log2(__x); }
30194 
30195  constexpr float
30196  logb(float __x)
30197  { return __builtin_logbf(__x); }
30198 
30199  constexpr long double
30200  logb(long double __x)
30201  { return __builtin_logbl(__x); }
30202 
30203  template<typename _Tp>
30204  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30205  double>::__type
30206  logb(_Tp __x)
30207  { return __builtin_logb(__x); }
30208 
30209  constexpr long
30210  lrint(float __x)
30211  { return __builtin_lrintf(__x); }
30212 
30213  constexpr long
30214  lrint(long double __x)
30215  { return __builtin_lrintl(__x); }
30216 
30217  template<typename _Tp>
30218  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30219  long>::__type
30220  lrint(_Tp __x)
30221  { return __builtin_lrint(__x); }
30222 
30223  constexpr long
30224  lround(float __x)
30225  { return __builtin_lroundf(__x); }
30226 
30227  constexpr long
30228  lround(long double __x)
30229  { return __builtin_lroundl(__x); }
30230 
30231  template<typename _Tp>
30232  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30233  long>::__type
30234  lround(_Tp __x)
30235  { return __builtin_lround(__x); }
30236 
30237  constexpr float
30238  nearbyint(float __x)
30239  { return __builtin_nearbyintf(__x); }
30240 
30241  constexpr long double
30242  nearbyint(long double __x)
30243  { return __builtin_nearbyintl(__x); }
30244 
30245  template<typename _Tp>
30246  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30247  double>::__type
30248  nearbyint(_Tp __x)
30249  { return __builtin_nearbyint(__x); }
30250 
30251  constexpr float
30252  nextafter(float __x, float __y)
30253  { return __builtin_nextafterf(__x, __y); }
30254 
30255  constexpr long double
30256  nextafter(long double __x, long double __y)
30257  { return __builtin_nextafterl(__x, __y); }
30258 
30259  template<typename _Tp, typename _Up>
30260  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30261  nextafter(_Tp __x, _Up __y)
30262  {
30263  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30264  return nextafter(__type(__x), __type(__y));
30265  }
30266 
30267  constexpr float
30268  nexttoward(float __x, long double __y)
30269  { return __builtin_nexttowardf(__x, __y); }
30270 
30271  constexpr long double
30272  nexttoward(long double __x, long double __y)
30273  { return __builtin_nexttowardl(__x, __y); }
30274 
30275  template<typename _Tp>
30276  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30277  double>::__type
30278  nexttoward(_Tp __x, long double __y)
30279  { return __builtin_nexttoward(__x, __y); }
30280 
30281  constexpr float
30282  remainder(float __x, float __y)
30283  { return __builtin_remainderf(__x, __y); }
30284 
30285  constexpr long double
30286  remainder(long double __x, long double __y)
30287  { return __builtin_remainderl(__x, __y); }
30288 
30289  template<typename _Tp, typename _Up>
30290  constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30291  remainder(_Tp __x, _Up __y)
30292  {
30293  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30294  return remainder(__type(__x), __type(__y));
30295  }
30296 
30297  inline float
30298  remquo(float __x, float __y, int* __pquo)
30299  { return __builtin_remquof(__x, __y, __pquo); }
30300 
30301  inline long double
30302  remquo(long double __x, long double __y, int* __pquo)
30303  { return __builtin_remquol(__x, __y, __pquo); }
30304 
30305  template<typename _Tp, typename _Up>
30306  inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
30307  remquo(_Tp __x, _Up __y, int* __pquo)
30308  {
30309  typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
30310  return remquo(__type(__x), __type(__y), __pquo);
30311  }
30312 
30313  constexpr float
30314  rint(float __x)
30315  { return __builtin_rintf(__x); }
30316 
30317  constexpr long double
30318  rint(long double __x)
30319  { return __builtin_rintl(__x); }
30320 
30321  template<typename _Tp>
30322  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30323  double>::__type
30324  rint(_Tp __x)
30325  { return __builtin_rint(__x); }
30326 
30327  constexpr float
30328  round(float __x)
30329  { return __builtin_roundf(__x); }
30330 
30331  constexpr long double
30332  round(long double __x)
30333  { return __builtin_roundl(__x); }
30334 
30335  template<typename _Tp>
30336  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30337  double>::__type
30338  round(_Tp __x)
30339  { return __builtin_round(__x); }
30340 
30341  constexpr float
30342  scalbln(float __x, long __ex)
30343  { return __builtin_scalblnf(__x, __ex); }
30344 
30345  constexpr long double
30346  scalbln(long double __x, long __ex)
30347  { return __builtin_scalblnl(__x, __ex); }
30348 
30349  template<typename _Tp>
30350  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30351  double>::__type
30352  scalbln(_Tp __x, long __ex)
30353  { return __builtin_scalbln(__x, __ex); }
30354 
30355  constexpr float
30356  scalbn(float __x, int __ex)
30357  { return __builtin_scalbnf(__x, __ex); }
30358 
30359  constexpr long double
30360  scalbn(long double __x, int __ex)
30361  { return __builtin_scalbnl(__x, __ex); }
30362 
30363  template<typename _Tp>
30364  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30365  double>::__type
30366  scalbn(_Tp __x, int __ex)
30367  { return __builtin_scalbn(__x, __ex); }
30368 
30369  constexpr float
30370  tgamma(float __x)
30371  { return __builtin_tgammaf(__x); }
30372 
30373  constexpr long double
30374  tgamma(long double __x)
30375  { return __builtin_tgammal(__x); }
30376 
30377  template<typename _Tp>
30378  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30379  double>::__type
30380  tgamma(_Tp __x)
30381  { return __builtin_tgamma(__x); }
30382 
30383  constexpr float
30384  trunc(float __x)
30385  { return __builtin_truncf(__x); }
30386 
30387  constexpr long double
30388  trunc(long double __x)
30389  { return __builtin_truncl(__x); }
30390 
30391  template<typename _Tp>
30392  constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
30393  double>::__type
30394  trunc(_Tp __x)
30395  { return __builtin_trunc(__x); }
30396 
30397 
30398 }
30399 # 39 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
30400 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 1 3
30401 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/cstdlib" 3
30402 # 40 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
30403 
30404 
30405 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 1 3
30406 # 41 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30407 # 147 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30408 namespace std __attribute__ ((__visibility__ ("default")))
30409 {
30410 
30411 
30412 
30413 
30414 
30415 
30416 
30417  enum float_round_style
30418  {
30419  round_indeterminate = -1,
30420  round_toward_zero = 0,
30421  round_to_nearest = 1,
30422  round_toward_infinity = 2,
30423  round_toward_neg_infinity = 3
30424  };
30425 
30426 
30427 
30428 
30429 
30430 
30431 
30432  enum float_denorm_style
30433  {
30434 
30435  denorm_indeterminate = -1,
30436 
30437  denorm_absent = 0,
30438 
30439  denorm_present = 1
30440  };
30441 # 191 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30442  struct __numeric_limits_base
30443  {
30444 
30445 
30446  static constexpr bool is_specialized = false;
30447 
30448 
30449 
30450 
30451  static constexpr int digits = 0;
30452 
30453 
30454  static constexpr int digits10 = 0;
30455 
30456 
30457 
30458 
30459  static constexpr int max_digits10 = 0;
30460 
30461 
30462 
30463  static constexpr bool is_signed = false;
30464 
30465 
30466  static constexpr bool is_integer = false;
30467 
30468 
30469 
30470 
30471  static constexpr bool is_exact = false;
30472 
30473 
30474 
30475  static constexpr int radix = 0;
30476 
30477 
30478 
30479  static constexpr int min_exponent = 0;
30480 
30481 
30482 
30483  static constexpr int min_exponent10 = 0;
30484 
30485 
30486 
30487 
30488  static constexpr int max_exponent = 0;
30489 
30490 
30491 
30492  static constexpr int max_exponent10 = 0;
30493 
30494 
30495  static constexpr bool has_infinity = false;
30496 
30497 
30498 
30499  static constexpr bool has_quiet_NaN = false;
30500 
30501 
30502 
30503  static constexpr bool has_signaling_NaN = false;
30504 
30505 
30506  static constexpr float_denorm_style has_denorm = denorm_absent;
30507 
30508 
30509 
30510  static constexpr bool has_denorm_loss = false;
30511 
30512 
30513 
30514  static constexpr bool is_iec559 = false;
30515 
30516 
30517 
30518 
30519  static constexpr bool is_bounded = false;
30520 # 277 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30521  static constexpr bool is_modulo = false;
30522 
30523 
30524  static constexpr bool traps = false;
30525 
30526 
30527  static constexpr bool tinyness_before = false;
30528 
30529 
30530 
30531 
30532  static constexpr float_round_style round_style =
30533  round_toward_zero;
30534  };
30535 # 303 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
30536  template<typename _Tp>
30537  struct numeric_limits : public __numeric_limits_base
30538  {
30539 
30540 
30541  static constexpr _Tp
30542  min() noexcept { return _Tp(); }
30543 
30544 
30545  static constexpr _Tp
30546  max() noexcept { return _Tp(); }
30547 
30548 
30549 
30550 
30551  static constexpr _Tp
30552  lowest() noexcept { return _Tp(); }
30553 
30554 
30555 
30556 
30557  static constexpr _Tp
30558  epsilon() noexcept { return _Tp(); }
30559 
30560 
30561  static constexpr _Tp
30562  round_error() noexcept { return _Tp(); }
30563 
30564 
30565  static constexpr _Tp
30566  infinity() noexcept { return _Tp(); }
30567 
30568 
30569 
30570  static constexpr _Tp
30571  quiet_NaN() noexcept { return _Tp(); }
30572 
30573 
30574 
30575  static constexpr _Tp
30576  signaling_NaN() noexcept { return _Tp(); }
30577 
30578 
30579 
30580 
30581  static constexpr _Tp
30582  denorm_min() noexcept { return _Tp(); }
30583  };
30584 
30585 
30586  template<typename _Tp>
30587  struct numeric_limits<const _Tp>
30588  : public numeric_limits<_Tp> { };
30589 
30590  template<typename _Tp>
30591  struct numeric_limits<volatile _Tp>
30592  : public numeric_limits<_Tp> { };
30593 
30594  template<typename _Tp>
30595  struct numeric_limits<const volatile _Tp>
30596  : public numeric_limits<_Tp> { };
30597 
30598 
30599 
30600 
30601 
30602 
30603  template<>
30604  struct numeric_limits<bool>
30605  {
30606  static constexpr bool is_specialized = true;
30607 
30608  static constexpr bool
30609  min() noexcept { return false; }
30610 
30611  static constexpr bool
30612  max() noexcept { return true; }
30613 
30614 
30615  static constexpr bool
30616  lowest() noexcept { return min(); }
30617 
30618  static constexpr int digits = 1;
30619  static constexpr int digits10 = 0;
30620 
30621  static constexpr int max_digits10 = 0;
30622 
30623  static constexpr bool is_signed = false;
30624  static constexpr bool is_integer = true;
30625  static constexpr bool is_exact = true;
30626  static constexpr int radix = 2;
30627 
30628  static constexpr bool
30629  epsilon() noexcept { return false; }
30630 
30631  static constexpr bool
30632  round_error() noexcept { return false; }
30633 
30634  static constexpr int min_exponent = 0;
30635  static constexpr int min_exponent10 = 0;
30636  static constexpr int max_exponent = 0;
30637  static constexpr int max_exponent10 = 0;
30638 
30639  static constexpr bool has_infinity = false;
30640  static constexpr bool has_quiet_NaN = false;
30641  static constexpr bool has_signaling_NaN = false;
30642  static constexpr float_denorm_style has_denorm
30643  = denorm_absent;
30644  static constexpr bool has_denorm_loss = false;
30645 
30646  static constexpr bool
30647  infinity() noexcept { return false; }
30648 
30649  static constexpr bool
30650  quiet_NaN() noexcept { return false; }
30651 
30652  static constexpr bool
30653  signaling_NaN() noexcept { return false; }
30654 
30655  static constexpr bool
30656  denorm_min() noexcept { return false; }
30657 
30658  static constexpr bool is_iec559 = false;
30659  static constexpr bool is_bounded = true;
30660  static constexpr bool is_modulo = false;
30661 
30662 
30663 
30664 
30665  static constexpr bool traps = true;
30666  static constexpr bool tinyness_before = false;
30667  static constexpr float_round_style round_style
30668  = round_toward_zero;
30669  };
30670 
30671 
30672  template<>
30673  struct numeric_limits<char>
30674  {
30675  static constexpr bool is_specialized = true;
30676 
30677  static constexpr char
30678  min() noexcept { return (((char)(-1) < 0) ? -(((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0) - 1 : (char)0); }
30679 
30680  static constexpr char
30681  max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); }
30682 
30683 
30684  static constexpr char
30685  lowest() noexcept { return min(); }
30686 
30687 
30688  static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
30689  static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136);
30690 
30691  static constexpr int max_digits10 = 0;
30692 
30693  static constexpr bool is_signed = ((char)(-1) < 0);
30694  static constexpr bool is_integer = true;
30695  static constexpr bool is_exact = true;
30696  static constexpr int radix = 2;
30697 
30698  static constexpr char
30699  epsilon() noexcept { return 0; }
30700 
30701  static constexpr char
30702  round_error() noexcept { return 0; }
30703 
30704  static constexpr int min_exponent = 0;
30705  static constexpr int min_exponent10 = 0;
30706  static constexpr int max_exponent = 0;
30707  static constexpr int max_exponent10 = 0;
30708 
30709  static constexpr bool has_infinity = false;
30710  static constexpr bool has_quiet_NaN = false;
30711  static constexpr bool has_signaling_NaN = false;
30712  static constexpr float_denorm_style has_denorm
30713  = denorm_absent;
30714  static constexpr bool has_denorm_loss = false;
30715 
30716  static constexpr
30717  char infinity() noexcept { return char(); }
30718 
30719  static constexpr char
30720  quiet_NaN() noexcept { return char(); }
30721 
30722  static constexpr char
30723  signaling_NaN() noexcept { return char(); }
30724 
30725  static constexpr char
30726  denorm_min() noexcept { return static_cast<char>(0); }
30727 
30728  static constexpr bool is_iec559 = false;
30729  static constexpr bool is_bounded = true;
30730  static constexpr bool is_modulo = !is_signed;
30731 
30732  static constexpr bool traps = true;
30733  static constexpr bool tinyness_before = false;
30734  static constexpr float_round_style round_style
30735  = round_toward_zero;
30736  };
30737 
30738 
30739  template<>
30740  struct numeric_limits<signed char>
30741  {
30742  static constexpr bool is_specialized = true;
30743 
30744  static constexpr signed char
30745  min() noexcept { return -127 - 1; }
30746 
30747  static constexpr signed char
30748  max() noexcept { return 127; }
30749 
30750 
30751  static constexpr signed char
30752  lowest() noexcept { return min(); }
30753 
30754 
30755  static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
30756  static constexpr int digits10
30757  = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136);
30758 
30759  static constexpr int max_digits10 = 0;
30760 
30761  static constexpr bool is_signed = true;
30762  static constexpr bool is_integer = true;
30763  static constexpr bool is_exact = true;
30764  static constexpr int radix = 2;
30765 
30766  static constexpr signed char
30767  epsilon() noexcept { return 0; }
30768 
30769  static constexpr signed char
30770  round_error() noexcept { return 0; }
30771 
30772  static constexpr int min_exponent = 0;
30773  static constexpr int min_exponent10 = 0;
30774  static constexpr int max_exponent = 0;
30775  static constexpr int max_exponent10 = 0;
30776 
30777  static constexpr bool has_infinity = false;
30778  static constexpr bool has_quiet_NaN = false;
30779  static constexpr bool has_signaling_NaN = false;
30780  static constexpr float_denorm_style has_denorm
30781  = denorm_absent;
30782  static constexpr bool has_denorm_loss = false;
30783 
30784  static constexpr signed char
30785  infinity() noexcept { return static_cast<signed char>(0); }
30786 
30787  static constexpr signed char
30788  quiet_NaN() noexcept { return static_cast<signed char>(0); }
30789 
30790  static constexpr signed char
30791  signaling_NaN() noexcept
30792  { return static_cast<signed char>(0); }
30793 
30794  static constexpr signed char
30795  denorm_min() noexcept
30796  { return static_cast<signed char>(0); }
30797 
30798  static constexpr bool is_iec559 = false;
30799  static constexpr bool is_bounded = true;
30800  static constexpr bool is_modulo = false;
30801 
30802  static constexpr bool traps = true;
30803  static constexpr bool tinyness_before = false;
30804  static constexpr float_round_style round_style
30805  = round_toward_zero;
30806  };
30807 
30808 
30809  template<>
30810  struct numeric_limits<unsigned char>
30811  {
30812  static constexpr bool is_specialized = true;
30813 
30814  static constexpr unsigned char
30815  min() noexcept { return 0; }
30816 
30817  static constexpr unsigned char
30818  max() noexcept { return 127 * 2U + 1; }
30819 
30820 
30821  static constexpr unsigned char
30822  lowest() noexcept { return min(); }
30823 
30824 
30825  static constexpr int digits
30826  = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
30827  static constexpr int digits10
30828  = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136);
30829 
30830  static constexpr int max_digits10 = 0;
30831 
30832  static constexpr bool is_signed = false;
30833  static constexpr bool is_integer = true;
30834  static constexpr bool is_exact = true;
30835  static constexpr int radix = 2;
30836 
30837  static constexpr unsigned char
30838  epsilon() noexcept { return 0; }
30839 
30840  static constexpr unsigned char
30841  round_error() noexcept { return 0; }
30842 
30843  static constexpr int min_exponent = 0;
30844  static constexpr int min_exponent10 = 0;
30845  static constexpr int max_exponent = 0;
30846  static constexpr int max_exponent10 = 0;
30847 
30848  static constexpr bool has_infinity = false;
30849  static constexpr bool has_quiet_NaN = false;
30850  static constexpr bool has_signaling_NaN = false;
30851  static constexpr float_denorm_style has_denorm
30852  = denorm_absent;
30853  static constexpr bool has_denorm_loss = false;
30854 
30855  static constexpr unsigned char
30856  infinity() noexcept
30857  { return static_cast<unsigned char>(0); }
30858 
30859  static constexpr unsigned char
30860  quiet_NaN() noexcept
30861  { return static_cast<unsigned char>(0); }
30862 
30863  static constexpr unsigned char
30864  signaling_NaN() noexcept
30865  { return static_cast<unsigned char>(0); }
30866 
30867  static constexpr unsigned char
30868  denorm_min() noexcept
30869  { return static_cast<unsigned char>(0); }
30870 
30871  static constexpr bool is_iec559 = false;
30872  static constexpr bool is_bounded = true;
30873  static constexpr bool is_modulo = true;
30874 
30875  static constexpr bool traps = true;
30876  static constexpr bool tinyness_before = false;
30877  static constexpr float_round_style round_style
30878  = round_toward_zero;
30879  };
30880 
30881 
30882  template<>
30883  struct numeric_limits<wchar_t>
30884  {
30885  static constexpr bool is_specialized = true;
30886 
30887  static constexpr wchar_t
30888  min() noexcept { return (((wchar_t)(-1) < 0) ? -(((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0) - 1 : (wchar_t)0); }
30889 
30890  static constexpr wchar_t
30891  max() noexcept { return (((wchar_t)(-1) < 0) ? (((((wchar_t)1 << ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(wchar_t)0); }
30892 
30893 
30894  static constexpr wchar_t
30895  lowest() noexcept { return min(); }
30896 
30897 
30898  static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
30899  static constexpr int digits10
30900  = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136);
30901 
30902  static constexpr int max_digits10 = 0;
30903 
30904  static constexpr bool is_signed = ((wchar_t)(-1) < 0);
30905  static constexpr bool is_integer = true;
30906  static constexpr bool is_exact = true;
30907  static constexpr int radix = 2;
30908 
30909  static constexpr wchar_t
30910  epsilon() noexcept { return 0; }
30911 
30912  static constexpr wchar_t
30913  round_error() noexcept { return 0; }
30914 
30915  static constexpr int min_exponent = 0;
30916  static constexpr int min_exponent10 = 0;
30917  static constexpr int max_exponent = 0;
30918  static constexpr int max_exponent10 = 0;
30919 
30920  static constexpr bool has_infinity = false;
30921  static constexpr bool has_quiet_NaN = false;
30922  static constexpr bool has_signaling_NaN = false;
30923  static constexpr float_denorm_style has_denorm
30924  = denorm_absent;
30925  static constexpr bool has_denorm_loss = false;
30926 
30927  static constexpr wchar_t
30928  infinity() noexcept { return wchar_t(); }
30929 
30930  static constexpr wchar_t
30931  quiet_NaN() noexcept { return wchar_t(); }
30932 
30933  static constexpr wchar_t
30934  signaling_NaN() noexcept { return wchar_t(); }
30935 
30936  static constexpr wchar_t
30937  denorm_min() noexcept { return wchar_t(); }
30938 
30939  static constexpr bool is_iec559 = false;
30940  static constexpr bool is_bounded = true;
30941  static constexpr bool is_modulo = !is_signed;
30942 
30943  static constexpr bool traps = true;
30944  static constexpr bool tinyness_before = false;
30945  static constexpr float_round_style round_style
30946  = round_toward_zero;
30947  };
30948 
30949 
30950 
30951  template<>
30952  struct numeric_limits<char16_t>
30953  {
30954  static constexpr bool is_specialized = true;
30955 
30956  static constexpr char16_t
30957  min() noexcept { return (((char16_t)(-1) < 0) ? -(((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0) - 1 : (char16_t)0); }
30958 
30959  static constexpr char16_t
30960  max() noexcept { return (((char16_t)(-1) < 0) ? (((((char16_t)1 << ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char16_t)0); }
30961 
30962  static constexpr char16_t
30963  lowest() noexcept { return min(); }
30964 
30965  static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0));
30966  static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136);
30967  static constexpr int max_digits10 = 0;
30968  static constexpr bool is_signed = ((char16_t)(-1) < 0);
30969  static constexpr bool is_integer = true;
30970  static constexpr bool is_exact = true;
30971  static constexpr int radix = 2;
30972 
30973  static constexpr char16_t
30974  epsilon() noexcept { return 0; }
30975 
30976  static constexpr char16_t
30977  round_error() noexcept { return 0; }
30978 
30979  static constexpr int min_exponent = 0;
30980  static constexpr int min_exponent10 = 0;
30981  static constexpr int max_exponent = 0;
30982  static constexpr int max_exponent10 = 0;
30983 
30984  static constexpr bool has_infinity = false;
30985  static constexpr bool has_quiet_NaN = false;
30986  static constexpr bool has_signaling_NaN = false;
30987  static constexpr float_denorm_style has_denorm = denorm_absent;
30988  static constexpr bool has_denorm_loss = false;
30989 
30990  static constexpr char16_t
30991  infinity() noexcept { return char16_t(); }
30992 
30993  static constexpr char16_t
30994  quiet_NaN() noexcept { return char16_t(); }
30995 
30996  static constexpr char16_t
30997  signaling_NaN() noexcept { return char16_t(); }
30998 
30999  static constexpr char16_t
31000  denorm_min() noexcept { return char16_t(); }
31001 
31002  static constexpr bool is_iec559 = false;
31003  static constexpr bool is_bounded = true;
31004  static constexpr bool is_modulo = !is_signed;
31005 
31006  static constexpr bool traps = true;
31007  static constexpr bool tinyness_before = false;
31008  static constexpr float_round_style round_style = round_toward_zero;
31009  };
31010 
31011 
31012  template<>
31013  struct numeric_limits<char32_t>
31014  {
31015  static constexpr bool is_specialized = true;
31016 
31017  static constexpr char32_t
31018  min() noexcept { return (((char32_t)(-1) < 0) ? -(((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0) - 1 : (char32_t)0); }
31019 
31020  static constexpr char32_t
31021  max() noexcept { return (((char32_t)(-1) < 0) ? (((((char32_t)1 << ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char32_t)0); }
31022 
31023  static constexpr char32_t
31024  lowest() noexcept { return min(); }
31025 
31026  static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0));
31027  static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136);
31028  static constexpr int max_digits10 = 0;
31029  static constexpr bool is_signed = ((char32_t)(-1) < 0);
31030  static constexpr bool is_integer = true;
31031  static constexpr bool is_exact = true;
31032  static constexpr int radix = 2;
31033 
31034  static constexpr char32_t
31035  epsilon() noexcept { return 0; }
31036 
31037  static constexpr char32_t
31038  round_error() noexcept { return 0; }
31039 
31040  static constexpr int min_exponent = 0;
31041  static constexpr int min_exponent10 = 0;
31042  static constexpr int max_exponent = 0;
31043  static constexpr int max_exponent10 = 0;
31044 
31045  static constexpr bool has_infinity = false;
31046  static constexpr bool has_quiet_NaN = false;
31047  static constexpr bool has_signaling_NaN = false;
31048  static constexpr float_denorm_style has_denorm = denorm_absent;
31049  static constexpr bool has_denorm_loss = false;
31050 
31051  static constexpr char32_t
31052  infinity() noexcept { return char32_t(); }
31053 
31054  static constexpr char32_t
31055  quiet_NaN() noexcept { return char32_t(); }
31056 
31057  static constexpr char32_t
31058  signaling_NaN() noexcept { return char32_t(); }
31059 
31060  static constexpr char32_t
31061  denorm_min() noexcept { return char32_t(); }
31062 
31063  static constexpr bool is_iec559 = false;
31064  static constexpr bool is_bounded = true;
31065  static constexpr bool is_modulo = !is_signed;
31066 
31067  static constexpr bool traps = true;
31068  static constexpr bool tinyness_before = false;
31069  static constexpr float_round_style round_style = round_toward_zero;
31070  };
31071 
31072 
31073 
31074  template<>
31075  struct numeric_limits<short>
31076  {
31077  static constexpr bool is_specialized = true;
31078 
31079  static constexpr short
31080  min() noexcept { return -32767 - 1; }
31081 
31082  static constexpr short
31083  max() noexcept { return 32767; }
31084 
31085 
31086  static constexpr short
31087  lowest() noexcept { return min(); }
31088 
31089 
31090  static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
31091  static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136);
31092 
31093  static constexpr int max_digits10 = 0;
31094 
31095  static constexpr bool is_signed = true;
31096  static constexpr bool is_integer = true;
31097  static constexpr bool is_exact = true;
31098  static constexpr int radix = 2;
31099 
31100  static constexpr short
31101  epsilon() noexcept { return 0; }
31102 
31103  static constexpr short
31104  round_error() noexcept { return 0; }
31105 
31106  static constexpr int min_exponent = 0;
31107  static constexpr int min_exponent10 = 0;
31108  static constexpr int max_exponent = 0;
31109  static constexpr int max_exponent10 = 0;
31110 
31111  static constexpr bool has_infinity = false;
31112  static constexpr bool has_quiet_NaN = false;
31113  static constexpr bool has_signaling_NaN = false;
31114  static constexpr float_denorm_style has_denorm
31115  = denorm_absent;
31116  static constexpr bool has_denorm_loss = false;
31117 
31118  static constexpr short
31119  infinity() noexcept { return short(); }
31120 
31121  static constexpr short
31122  quiet_NaN() noexcept { return short(); }
31123 
31124  static constexpr short
31125  signaling_NaN() noexcept { return short(); }
31126 
31127  static constexpr short
31128  denorm_min() noexcept { return short(); }
31129 
31130  static constexpr bool is_iec559 = false;
31131  static constexpr bool is_bounded = true;
31132  static constexpr bool is_modulo = false;
31133 
31134  static constexpr bool traps = true;
31135  static constexpr bool tinyness_before = false;
31136  static constexpr float_round_style round_style
31137  = round_toward_zero;
31138  };
31139 
31140 
31141  template<>
31142  struct numeric_limits<unsigned short>
31143  {
31144  static constexpr bool is_specialized = true;
31145 
31146  static constexpr unsigned short
31147  min() noexcept { return 0; }
31148 
31149  static constexpr unsigned short
31150  max() noexcept { return 32767 * 2U + 1; }
31151 
31152 
31153  static constexpr unsigned short
31154  lowest() noexcept { return min(); }
31155 
31156 
31157  static constexpr int digits
31158  = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
31159  static constexpr int digits10
31160  = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136);
31161 
31162  static constexpr int max_digits10 = 0;
31163 
31164  static constexpr bool is_signed = false;
31165  static constexpr bool is_integer = true;
31166  static constexpr bool is_exact = true;
31167  static constexpr int radix = 2;
31168 
31169  static constexpr unsigned short
31170  epsilon() noexcept { return 0; }
31171 
31172  static constexpr unsigned short
31173  round_error() noexcept { return 0; }
31174 
31175  static constexpr int min_exponent = 0;
31176  static constexpr int min_exponent10 = 0;
31177  static constexpr int max_exponent = 0;
31178  static constexpr int max_exponent10 = 0;
31179 
31180  static constexpr bool has_infinity = false;
31181  static constexpr bool has_quiet_NaN = false;
31182  static constexpr bool has_signaling_NaN = false;
31183  static constexpr float_denorm_style has_denorm
31184  = denorm_absent;
31185  static constexpr bool has_denorm_loss = false;
31186 
31187  static constexpr unsigned short
31188  infinity() noexcept
31189  { return static_cast<unsigned short>(0); }
31190 
31191  static constexpr unsigned short
31192  quiet_NaN() noexcept
31193  { return static_cast<unsigned short>(0); }
31194 
31195  static constexpr unsigned short
31196  signaling_NaN() noexcept
31197  { return static_cast<unsigned short>(0); }
31198 
31199  static constexpr unsigned short
31200  denorm_min() noexcept
31201  { return static_cast<unsigned short>(0); }
31202 
31203  static constexpr bool is_iec559 = false;
31204  static constexpr bool is_bounded = true;
31205  static constexpr bool is_modulo = true;
31206 
31207  static constexpr bool traps = true;
31208  static constexpr bool tinyness_before = false;
31209  static constexpr float_round_style round_style
31210  = round_toward_zero;
31211  };
31212 
31213 
31214  template<>
31215  struct numeric_limits<int>
31216  {
31217  static constexpr bool is_specialized = true;
31218 
31219  static constexpr int
31220  min() noexcept { return -2147483647 - 1; }
31221 
31222  static constexpr int
31223  max() noexcept { return 2147483647; }
31224 
31225 
31226  static constexpr int
31227  lowest() noexcept { return min(); }
31228 
31229 
31230  static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
31231  static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136);
31232 
31233  static constexpr int max_digits10 = 0;
31234 
31235  static constexpr bool is_signed = true;
31236  static constexpr bool is_integer = true;
31237  static constexpr bool is_exact = true;
31238  static constexpr int radix = 2;
31239 
31240  static constexpr int
31241  epsilon() noexcept { return 0; }
31242 
31243  static constexpr int
31244  round_error() noexcept { return 0; }
31245 
31246  static constexpr int min_exponent = 0;
31247  static constexpr int min_exponent10 = 0;
31248  static constexpr int max_exponent = 0;
31249  static constexpr int max_exponent10 = 0;
31250 
31251  static constexpr bool has_infinity = false;
31252  static constexpr bool has_quiet_NaN = false;
31253  static constexpr bool has_signaling_NaN = false;
31254  static constexpr float_denorm_style has_denorm
31255  = denorm_absent;
31256  static constexpr bool has_denorm_loss = false;
31257 
31258  static constexpr int
31259  infinity() noexcept { return static_cast<int>(0); }
31260 
31261  static constexpr int
31262  quiet_NaN() noexcept { return static_cast<int>(0); }
31263 
31264  static constexpr int
31265  signaling_NaN() noexcept { return static_cast<int>(0); }
31266 
31267  static constexpr int
31268  denorm_min() noexcept { return static_cast<int>(0); }
31269 
31270  static constexpr bool is_iec559 = false;
31271  static constexpr bool is_bounded = true;
31272  static constexpr bool is_modulo = false;
31273 
31274  static constexpr bool traps = true;
31275  static constexpr bool tinyness_before = false;
31276  static constexpr float_round_style round_style
31277  = round_toward_zero;
31278  };
31279 
31280 
31281  template<>
31282  struct numeric_limits<unsigned int>
31283  {
31284  static constexpr bool is_specialized = true;
31285 
31286  static constexpr unsigned int
31287  min() noexcept { return 0; }
31288 
31289  static constexpr unsigned int
31290  max() noexcept { return 2147483647 * 2U + 1; }
31291 
31292 
31293  static constexpr unsigned int
31294  lowest() noexcept { return min(); }
31295 
31296 
31297  static constexpr int digits
31298  = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
31299  static constexpr int digits10
31300  = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136);
31301 
31302  static constexpr int max_digits10 = 0;
31303 
31304  static constexpr bool is_signed = false;
31305  static constexpr bool is_integer = true;
31306  static constexpr bool is_exact = true;
31307  static constexpr int radix = 2;
31308 
31309  static constexpr unsigned int
31310  epsilon() noexcept { return 0; }
31311 
31312  static constexpr unsigned int
31313  round_error() noexcept { return 0; }
31314 
31315  static constexpr int min_exponent = 0;
31316  static constexpr int min_exponent10 = 0;
31317  static constexpr int max_exponent = 0;
31318  static constexpr int max_exponent10 = 0;
31319 
31320  static constexpr bool has_infinity = false;
31321  static constexpr bool has_quiet_NaN = false;
31322  static constexpr bool has_signaling_NaN = false;
31323  static constexpr float_denorm_style has_denorm
31324  = denorm_absent;
31325  static constexpr bool has_denorm_loss = false;
31326 
31327  static constexpr unsigned int
31328  infinity() noexcept { return static_cast<unsigned int>(0); }
31329 
31330  static constexpr unsigned int
31331  quiet_NaN() noexcept
31332  { return static_cast<unsigned int>(0); }
31333 
31334  static constexpr unsigned int
31335  signaling_NaN() noexcept
31336  { return static_cast<unsigned int>(0); }
31337 
31338  static constexpr unsigned int
31339  denorm_min() noexcept
31340  { return static_cast<unsigned int>(0); }
31341 
31342  static constexpr bool is_iec559 = false;
31343  static constexpr bool is_bounded = true;
31344  static constexpr bool is_modulo = true;
31345 
31346  static constexpr bool traps = true;
31347  static constexpr bool tinyness_before = false;
31348  static constexpr float_round_style round_style
31349  = round_toward_zero;
31350  };
31351 
31352 
31353  template<>
31354  struct numeric_limits<long>
31355  {
31356  static constexpr bool is_specialized = true;
31357 
31358  static constexpr long
31359  min() noexcept { return -9223372036854775807L - 1; }
31360 
31361  static constexpr long
31362  max() noexcept { return 9223372036854775807L; }
31363 
31364 
31365  static constexpr long
31366  lowest() noexcept { return min(); }
31367 
31368 
31369  static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
31370  static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136);
31371 
31372  static constexpr int max_digits10 = 0;
31373 
31374  static constexpr bool is_signed = true;
31375  static constexpr bool is_integer = true;
31376  static constexpr bool is_exact = true;
31377  static constexpr int radix = 2;
31378 
31379  static constexpr long
31380  epsilon() noexcept { return 0; }
31381 
31382  static constexpr long
31383  round_error() noexcept { return 0; }
31384 
31385  static constexpr int min_exponent = 0;
31386  static constexpr int min_exponent10 = 0;
31387  static constexpr int max_exponent = 0;
31388  static constexpr int max_exponent10 = 0;
31389 
31390  static constexpr bool has_infinity = false;
31391  static constexpr bool has_quiet_NaN = false;
31392  static constexpr bool has_signaling_NaN = false;
31393  static constexpr float_denorm_style has_denorm
31394  = denorm_absent;
31395  static constexpr bool has_denorm_loss = false;
31396 
31397  static constexpr long
31398  infinity() noexcept { return static_cast<long>(0); }
31399 
31400  static constexpr long
31401  quiet_NaN() noexcept { return static_cast<long>(0); }
31402 
31403  static constexpr long
31404  signaling_NaN() noexcept { return static_cast<long>(0); }
31405 
31406  static constexpr long
31407  denorm_min() noexcept { return static_cast<long>(0); }
31408 
31409  static constexpr bool is_iec559 = false;
31410  static constexpr bool is_bounded = true;
31411  static constexpr bool is_modulo = false;
31412 
31413  static constexpr bool traps = true;
31414  static constexpr bool tinyness_before = false;
31415  static constexpr float_round_style round_style
31416  = round_toward_zero;
31417  };
31418 
31419 
31420  template<>
31421  struct numeric_limits<unsigned long>
31422  {
31423  static constexpr bool is_specialized = true;
31424 
31425  static constexpr unsigned long
31426  min() noexcept { return 0; }
31427 
31428  static constexpr unsigned long
31429  max() noexcept { return 9223372036854775807L * 2UL + 1; }
31430 
31431 
31432  static constexpr unsigned long
31433  lowest() noexcept { return min(); }
31434 
31435 
31436  static constexpr int digits
31437  = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
31438  static constexpr int digits10
31439  = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136);
31440 
31441  static constexpr int max_digits10 = 0;
31442 
31443  static constexpr bool is_signed = false;
31444  static constexpr bool is_integer = true;
31445  static constexpr bool is_exact = true;
31446  static constexpr int radix = 2;
31447 
31448  static constexpr unsigned long
31449  epsilon() noexcept { return 0; }
31450 
31451  static constexpr unsigned long
31452  round_error() noexcept { return 0; }
31453 
31454  static constexpr int min_exponent = 0;
31455  static constexpr int min_exponent10 = 0;
31456  static constexpr int max_exponent = 0;
31457  static constexpr int max_exponent10 = 0;
31458 
31459  static constexpr bool has_infinity = false;
31460  static constexpr bool has_quiet_NaN = false;
31461  static constexpr bool has_signaling_NaN = false;
31462  static constexpr float_denorm_style has_denorm
31463  = denorm_absent;
31464  static constexpr bool has_denorm_loss = false;
31465 
31466  static constexpr unsigned long
31467  infinity() noexcept
31468  { return static_cast<unsigned long>(0); }
31469 
31470  static constexpr unsigned long
31471  quiet_NaN() noexcept
31472  { return static_cast<unsigned long>(0); }
31473 
31474  static constexpr unsigned long
31475  signaling_NaN() noexcept
31476  { return static_cast<unsigned long>(0); }
31477 
31478  static constexpr unsigned long
31479  denorm_min() noexcept
31480  { return static_cast<unsigned long>(0); }
31481 
31482  static constexpr bool is_iec559 = false;
31483  static constexpr bool is_bounded = true;
31484  static constexpr bool is_modulo = true;
31485 
31486  static constexpr bool traps = true;
31487  static constexpr bool tinyness_before = false;
31488  static constexpr float_round_style round_style
31489  = round_toward_zero;
31490  };
31491 
31492 
31493  template<>
31494  struct numeric_limits<long long>
31495  {
31496  static constexpr bool is_specialized = true;
31497 
31498  static constexpr long long
31499  min() noexcept { return -9223372036854775807LL - 1; }
31500 
31501  static constexpr long long
31502  max() noexcept { return 9223372036854775807LL; }
31503 
31504 
31505  static constexpr long long
31506  lowest() noexcept { return min(); }
31507 
31508 
31509  static constexpr int digits
31510  = (sizeof(long long) * 8 - ((long long)(-1) < 0));
31511  static constexpr int digits10
31512  = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136);
31513 
31514  static constexpr int max_digits10 = 0;
31515 
31516  static constexpr bool is_signed = true;
31517  static constexpr bool is_integer = true;
31518  static constexpr bool is_exact = true;
31519  static constexpr int radix = 2;
31520 
31521  static constexpr long long
31522  epsilon() noexcept { return 0; }
31523 
31524  static constexpr long long
31525  round_error() noexcept { return 0; }
31526 
31527  static constexpr int min_exponent = 0;
31528  static constexpr int min_exponent10 = 0;
31529  static constexpr int max_exponent = 0;
31530  static constexpr int max_exponent10 = 0;
31531 
31532  static constexpr bool has_infinity = false;
31533  static constexpr bool has_quiet_NaN = false;
31534  static constexpr bool has_signaling_NaN = false;
31535  static constexpr float_denorm_style has_denorm
31536  = denorm_absent;
31537  static constexpr bool has_denorm_loss = false;
31538 
31539  static constexpr long long
31540  infinity() noexcept { return static_cast<long long>(0); }
31541 
31542  static constexpr long long
31543  quiet_NaN() noexcept { return static_cast<long long>(0); }
31544 
31545  static constexpr long long
31546  signaling_NaN() noexcept
31547  { return static_cast<long long>(0); }
31548 
31549  static constexpr long long
31550  denorm_min() noexcept { return static_cast<long long>(0); }
31551 
31552  static constexpr bool is_iec559 = false;
31553  static constexpr bool is_bounded = true;
31554  static constexpr bool is_modulo = false;
31555 
31556  static constexpr bool traps = true;
31557  static constexpr bool tinyness_before = false;
31558  static constexpr float_round_style round_style
31559  = round_toward_zero;
31560  };
31561 
31562 
31563  template<>
31564  struct numeric_limits<unsigned long long>
31565  {
31566  static constexpr bool is_specialized = true;
31567 
31568  static constexpr unsigned long long
31569  min() noexcept { return 0; }
31570 
31571  static constexpr unsigned long long
31572  max() noexcept { return 9223372036854775807LL * 2ULL + 1; }
31573 
31574 
31575  static constexpr unsigned long long
31576  lowest() noexcept { return min(); }
31577 
31578 
31579  static constexpr int digits
31580  = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
31581  static constexpr int digits10
31582  = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136);
31583 
31584  static constexpr int max_digits10 = 0;
31585 
31586  static constexpr bool is_signed = false;
31587  static constexpr bool is_integer = true;
31588  static constexpr bool is_exact = true;
31589  static constexpr int radix = 2;
31590 
31591  static constexpr unsigned long long
31592  epsilon() noexcept { return 0; }
31593 
31594  static constexpr unsigned long long
31595  round_error() noexcept { return 0; }
31596 
31597  static constexpr int min_exponent = 0;
31598  static constexpr int min_exponent10 = 0;
31599  static constexpr int max_exponent = 0;
31600  static constexpr int max_exponent10 = 0;
31601 
31602  static constexpr bool has_infinity = false;
31603  static constexpr bool has_quiet_NaN = false;
31604  static constexpr bool has_signaling_NaN = false;
31605  static constexpr float_denorm_style has_denorm
31606  = denorm_absent;
31607  static constexpr bool has_denorm_loss = false;
31608 
31609  static constexpr unsigned long long
31610  infinity() noexcept
31611  { return static_cast<unsigned long long>(0); }
31612 
31613  static constexpr unsigned long long
31614  quiet_NaN() noexcept
31615  { return static_cast<unsigned long long>(0); }
31616 
31617  static constexpr unsigned long long
31618  signaling_NaN() noexcept
31619  { return static_cast<unsigned long long>(0); }
31620 
31621  static constexpr unsigned long long
31622  denorm_min() noexcept
31623  { return static_cast<unsigned long long>(0); }
31624 
31625  static constexpr bool is_iec559 = false;
31626  static constexpr bool is_bounded = true;
31627  static constexpr bool is_modulo = true;
31628 
31629  static constexpr bool traps = true;
31630  static constexpr bool tinyness_before = false;
31631  static constexpr float_round_style round_style
31632  = round_toward_zero;
31633  };
31634 # 1552 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/limits" 3
31635  template<>
31636  struct numeric_limits<float>
31637  {
31638  static constexpr bool is_specialized = true;
31639 
31640  static constexpr float
31641  min() noexcept { return 1.17549435e-38F; }
31642 
31643  static constexpr float
31644  max() noexcept { return 3.40282347e+38F; }
31645 
31646 
31647  static constexpr float
31648  lowest() noexcept { return -3.40282347e+38F; }
31649 
31650 
31651  static constexpr int digits = 24;
31652  static constexpr int digits10 = 6;
31653 
31654  static constexpr int max_digits10
31655  = (2 + (24) * 643L / 2136);
31656 
31657  static constexpr bool is_signed = true;
31658  static constexpr bool is_integer = false;
31659  static constexpr bool is_exact = false;
31660  static constexpr int radix = 2;
31661 
31662  static constexpr float
31663  epsilon() noexcept { return 1.19209290e-7F; }
31664 
31665  static constexpr float
31666  round_error() noexcept { return 0.5F; }
31667 
31668  static constexpr int min_exponent = (-125);
31669  static constexpr int min_exponent10 = (-37);
31670  static constexpr int max_exponent = 128;
31671  static constexpr int max_exponent10 = 38;
31672 
31673  static constexpr bool has_infinity = 1;
31674  static constexpr bool has_quiet_NaN = 1;
31675  static constexpr bool has_signaling_NaN = has_quiet_NaN;
31676  static constexpr float_denorm_style has_denorm
31677  = bool(1) ? denorm_present : denorm_absent;
31678  static constexpr bool has_denorm_loss
31679  = false;
31680 
31681  static constexpr float
31682  infinity() noexcept { return __builtin_huge_valf(); }
31683 
31684  static constexpr float
31685  quiet_NaN() noexcept { return __builtin_nanf(""); }
31686 
31687  static constexpr float
31688  signaling_NaN() noexcept { return __builtin_nansf(""); }
31689 
31690  static constexpr float
31691  denorm_min() noexcept { return 1.40129846e-45F; }
31692 
31693  static constexpr bool is_iec559
31694  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31695  static constexpr bool is_bounded = true;
31696  static constexpr bool is_modulo = false;
31697 
31698  static constexpr bool traps = false;
31699  static constexpr bool tinyness_before
31700  = false;
31701  static constexpr float_round_style round_style
31702  = round_to_nearest;
31703  };
31704 
31705 
31706 
31707 
31708 
31709 
31710  template<>
31711  struct numeric_limits<double>
31712  {
31713  static constexpr bool is_specialized = true;
31714 
31715  static constexpr double
31716  min() noexcept { return 2.2250738585072014e-308; }
31717 
31718  static constexpr double
31719  max() noexcept { return 1.7976931348623157e+308; }
31720 
31721 
31722  static constexpr double
31723  lowest() noexcept { return -1.7976931348623157e+308; }
31724 
31725 
31726  static constexpr int digits = 53;
31727  static constexpr int digits10 = 15;
31728 
31729  static constexpr int max_digits10
31730  = (2 + (53) * 643L / 2136);
31731 
31732  static constexpr bool is_signed = true;
31733  static constexpr bool is_integer = false;
31734  static constexpr bool is_exact = false;
31735  static constexpr int radix = 2;
31736 
31737  static constexpr double
31738  epsilon() noexcept { return 2.2204460492503131e-16; }
31739 
31740  static constexpr double
31741  round_error() noexcept { return 0.5; }
31742 
31743  static constexpr int min_exponent = (-1021);
31744  static constexpr int min_exponent10 = (-307);
31745  static constexpr int max_exponent = 1024;
31746  static constexpr int max_exponent10 = 308;
31747 
31748  static constexpr bool has_infinity = 1;
31749  static constexpr bool has_quiet_NaN = 1;
31750  static constexpr bool has_signaling_NaN = has_quiet_NaN;
31751  static constexpr float_denorm_style has_denorm
31752  = bool(1) ? denorm_present : denorm_absent;
31753  static constexpr bool has_denorm_loss
31754  = false;
31755 
31756  static constexpr double
31757  infinity() noexcept { return __builtin_huge_val(); }
31758 
31759  static constexpr double
31760  quiet_NaN() noexcept { return __builtin_nan(""); }
31761 
31762  static constexpr double
31763  signaling_NaN() noexcept { return __builtin_nans(""); }
31764 
31765  static constexpr double
31766  denorm_min() noexcept { return 4.9406564584124654e-324; }
31767 
31768  static constexpr bool is_iec559
31769  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31770  static constexpr bool is_bounded = true;
31771  static constexpr bool is_modulo = false;
31772 
31773  static constexpr bool traps = false;
31774  static constexpr bool tinyness_before
31775  = false;
31776  static constexpr float_round_style round_style
31777  = round_to_nearest;
31778  };
31779 
31780 
31781 
31782 
31783 
31784 
31785  template<>
31786  struct numeric_limits<long double>
31787  {
31788  static constexpr bool is_specialized = true;
31789 
31790  static constexpr long double
31791  min() noexcept { return 3.36210314311209350626e-4932L; }
31792 
31793  static constexpr long double
31794  max() noexcept { return 1.18973149535723176502e+4932L; }
31795 
31796 
31797  static constexpr long double
31798  lowest() noexcept { return -1.18973149535723176502e+4932L; }
31799 
31800 
31801  static constexpr int digits = 64;
31802  static constexpr int digits10 = 18;
31803 
31804  static constexpr int max_digits10
31805  = (2 + (64) * 643L / 2136);
31806 
31807  static constexpr bool is_signed = true;
31808  static constexpr bool is_integer = false;
31809  static constexpr bool is_exact = false;
31810  static constexpr int radix = 2;
31811 
31812  static constexpr long double
31813  epsilon() noexcept { return 1.08420217248550443401e-19L; }
31814 
31815  static constexpr long double
31816  round_error() noexcept { return 0.5L; }
31817 
31818  static constexpr int min_exponent = (-16381);
31819  static constexpr int min_exponent10 = (-4931);
31820  static constexpr int max_exponent = 16384;
31821  static constexpr int max_exponent10 = 4932;
31822 
31823  static constexpr bool has_infinity = 1;
31824  static constexpr bool has_quiet_NaN = 1;
31825  static constexpr bool has_signaling_NaN = has_quiet_NaN;
31826  static constexpr float_denorm_style has_denorm
31827  = bool(1) ? denorm_present : denorm_absent;
31828  static constexpr bool has_denorm_loss
31829  = false;
31830 
31831  static constexpr long double
31832  infinity() noexcept { return __builtin_huge_vall(); }
31833 
31834  static constexpr long double
31835  quiet_NaN() noexcept { return __builtin_nanl(""); }
31836 
31837  static constexpr long double
31838  signaling_NaN() noexcept { return __builtin_nansl(""); }
31839 
31840  static constexpr long double
31841  denorm_min() noexcept { return 3.64519953188247460253e-4951L; }
31842 
31843  static constexpr bool is_iec559
31844  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
31845  static constexpr bool is_bounded = true;
31846  static constexpr bool is_modulo = false;
31847 
31848  static constexpr bool traps = false;
31849  static constexpr bool tinyness_before =
31850  false;
31851  static constexpr float_round_style round_style =
31852  round_to_nearest;
31853  };
31854 
31855 
31856 
31857 
31858 
31859 
31860 }
31861 # 43 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/random" 2 3
31862 
31863 
31864 
31865 
31866 
31867 
31868 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/random.h" 1 3
31869 # 34 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/random.h" 3
31870 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/vector" 1 3
31871 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/vector" 3
31872 
31873 
31874 
31875 
31876 # 1 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 1 3
31877 # 59 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31878 namespace std __attribute__ ((__visibility__ ("default")))
31879 {
31880 
31881 
31882  template<bool _TrivialValueTypes>
31883  struct __uninitialized_copy
31884  {
31885  template<typename _InputIterator, typename _ForwardIterator>
31886  static _ForwardIterator
31887  __uninit_copy(_InputIterator __first, _InputIterator __last,
31888  _ForwardIterator __result)
31889  {
31890  _ForwardIterator __cur = __result;
31891  try
31892  {
31893  for (; __first != __last; ++__first, ++__cur)
31894  std::_Construct(std::__addressof(*__cur), *__first);
31895  return __cur;
31896  }
31897  catch(...)
31898  {
31899  std::_Destroy(__result, __cur);
31900  throw;
31901  }
31902  }
31903  };
31904 
31905  template<>
31906  struct __uninitialized_copy<true>
31907  {
31908  template<typename _InputIterator, typename _ForwardIterator>
31909  static _ForwardIterator
31910  __uninit_copy(_InputIterator __first, _InputIterator __last,
31911  _ForwardIterator __result)
31912  { return std::copy(__first, __last, __result); }
31913  };
31914 # 105 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31915  template<typename _InputIterator, typename _ForwardIterator>
31916  inline _ForwardIterator
31917  uninitialized_copy(_InputIterator __first, _InputIterator __last,
31918  _ForwardIterator __result)
31919  {
31920  typedef typename iterator_traits<_InputIterator>::value_type
31921  _ValueType1;
31922  typedef typename iterator_traits<_ForwardIterator>::value_type
31923  _ValueType2;
31924 
31925 
31926 
31927 
31928  typedef typename iterator_traits<_InputIterator>::reference _RefType;
31929  const bool __assignable = is_assignable<_ValueType1, _RefType>::value;
31930 
31931 
31932  return std::__uninitialized_copy<__is_trivial(_ValueType1)
31933  && __is_trivial(_ValueType2)
31934  && __assignable>::
31935  __uninit_copy(__first, __last, __result);
31936  }
31937 
31938 
31939  template<bool _TrivialValueType>
31940  struct __uninitialized_fill
31941  {
31942  template<typename _ForwardIterator, typename _Tp>
31943  static void
31944  __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
31945  const _Tp& __x)
31946  {
31947  _ForwardIterator __cur = __first;
31948  try
31949  {
31950  for (; __cur != __last; ++__cur)
31951  std::_Construct(std::__addressof(*__cur), __x);
31952  }
31953  catch(...)
31954  {
31955  std::_Destroy(__first, __cur);
31956  throw;
31957  }
31958  }
31959  };
31960 
31961  template<>
31962  struct __uninitialized_fill<true>
31963  {
31964  template<typename _ForwardIterator, typename _Tp>
31965  static void
31966  __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
31967  const _Tp& __x)
31968  { std::fill(__first, __last, __x); }
31969  };
31970 # 170 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
31971  template<typename _ForwardIterator, typename _Tp>
31972  inline void
31973  uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
31974  const _Tp& __x)
31975  {
31976  typedef typename iterator_traits<_ForwardIterator>::value_type
31977  _ValueType;
31978 
31979 
31980 
31981 
31982  const bool __assignable = is_copy_assignable<_ValueType>::value;
31983 
31984 
31985  std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>::
31986  __uninit_fill(__first, __last, __x);
31987  }
31988 
31989 
31990  template<bool _TrivialValueType>
31991  struct __uninitialized_fill_n
31992  {
31993  template<typename _ForwardIterator, typename _Size, typename _Tp>
31994  static void
31995  __uninit_fill_n(_ForwardIterator __first, _Size __n,
31996  const _Tp& __x)
31997  {
31998  _ForwardIterator __cur = __first;
31999  try
32000  {
32001  for (; __n > 0; --__n, ++__cur)
32002  std::_Construct(std::__addressof(*__cur), __x);
32003  }
32004  catch(...)
32005  {
32006  std::_Destroy(__first, __cur);
32007  throw;
32008  }
32009  }
32010  };
32011 
32012  template<>
32013  struct __uninitialized_fill_n<true>
32014  {
32015  template<typename _ForwardIterator, typename _Size, typename _Tp>
32016  static void
32017  __uninit_fill_n(_ForwardIterator __first, _Size __n,
32018  const _Tp& __x)
32019  { std::fill_n(__first, __n, __x); }
32020  };
32021 # 230 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
32022  template<typename _ForwardIterator, typename _Size, typename _Tp>
32023  inline void
32024  uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
32025  {
32026  typedef typename iterator_traits<_ForwardIterator>::value_type
32027  _ValueType;
32028 
32029 
32030 
32031 
32032  const bool __assignable = is_copy_assignable<_ValueType>::value;
32033 
32034 
32035  std::__uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>::
32036  __uninit_fill_n(__first, __n, __x);
32037  }
32038 
32039 
32040 
32041 
32042 
32043 
32044 
32045  template<typename _InputIterator, typename _ForwardIterator,
32046  typename _Allocator>
32047  _ForwardIterator
32048  __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
32049  _ForwardIterator __result, _Allocator& __alloc)
32050  {
32051  _ForwardIterator __cur = __result;
32052  try
32053  {
32054  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32055  for (; __first != __last; ++__first, ++__cur)
32056  __traits::construct(__alloc, std::__addressof(*__cur), *__first);
32057  return __cur;
32058  }
32059  catch(...)
32060  {
32061  std::_Destroy(__result, __cur, __alloc);
32062  throw;
32063  }
32064  }
32065 
32066  template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
32067  inline _ForwardIterator
32068  __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
32069  _ForwardIterator __result, allocator<_Tp>&)
32070  { return std::uninitialized_copy(__first, __last, __result); }
32071 
32072  template<typename _InputIterator, typename _ForwardIterator,
32073  typename _Allocator>
32074  inline _ForwardIterator
32075  __uninitialized_move_a(_InputIterator __first, _InputIterator __last,
32076  _ForwardIterator __result, _Allocator& __alloc)
32077  {
32078  return std::__uninitialized_copy_a(std::make_move_iterator(__first),
32079  std::make_move_iterator(__last),
32080  __result, __alloc);
32081  }
32082 
32083  template<typename _InputIterator, typename _ForwardIterator,
32084  typename _Allocator>
32085  inline _ForwardIterator
32086  __uninitialized_move_if_noexcept_a(_InputIterator __first,
32087  _InputIterator __last,
32088  _ForwardIterator __result,
32089  _Allocator& __alloc)
32090  {
32091  return std::__uninitialized_copy_a
32092  (std::__make_move_if_noexcept_iterator(__first),
32093  std::__make_move_if_noexcept_iterator(__last), __result, __alloc);
32094  }
32095 
32096  template<typename _ForwardIterator, typename _Tp, typename _Allocator>
32097  void
32098  __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
32099  const _Tp& __x, _Allocator& __alloc)
32100  {
32101  _ForwardIterator __cur = __first;
32102  try
32103  {
32104  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32105  for (; __cur != __last; ++__cur)
32106  __traits::construct(__alloc, std::__addressof(*__cur), __x);
32107  }
32108  catch(...)
32109  {
32110  std::_Destroy(__first, __cur, __alloc);
32111  throw;
32112  }
32113  }
32114 
32115  template<typename _ForwardIterator, typename _Tp, typename _Tp2>
32116  inline void
32117  __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
32118  const _Tp& __x, allocator<_Tp2>&)
32119  { std::uninitialized_fill(__first, __last, __x); }
32120 
32121  template<typename _ForwardIterator, typename _Size, typename _Tp,
32122  typename _Allocator>
32123  void
32124  __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
32125  const _Tp& __x, _Allocator& __alloc)
32126  {
32127  _ForwardIterator __cur = __first;
32128  try
32129  {
32130  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
32131  for (; __n > 0; --__n, ++__cur)
32132  __traits::construct(__alloc, std::__addressof(*__cur), __x);
32133  }
32134  catch(...)
32135  {
32136  std::_Destroy(__first, __cur, __alloc);
32137  throw;
32138  }
32139  }
32140 
32141  template<typename _ForwardIterator, typename _Size, typename _Tp,
32142  typename _Tp2>
32143  inline void
32144  __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
32145  const _Tp& __x, allocator<_Tp2>&)
32146  { std::uninitialized_fill_n(__first, __n, __x); }
32147 # 366 "/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/bits/stl_uninitialized.h" 3
32148  template<typename _InputIterator1, typename _InputIterator2,
32149  typename _ForwardIterator, typename _Allocator>
32150  inline _ForwardIterator
32151  __uninitialized_copy_move(_InputIterator1 __first1,
32152  _InputIterator1 __last1,
32153  _InputIterator2 __first2,
32154  _InputIterator2 __last2,
32155  _ForwardIterator __result,
32156  _Allocator& __alloc)
32157  {
32158  _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
32159  __result,
32160  __alloc);
32161  try
32162  {
32163  return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc);
32164  }
32165  catch(...)
32166  {
32167  std::_Destroy(__result, __mid, __alloc);
32168  throw;
32169  }
32170  }
32171 
32172 
32173 
32174 
32175 
32176  template<typename _InputIterator1, typename _InputIterator2,
32177  typename _ForwardIterator, typename _Allocator>
32178  inline _ForwardIterator
32179  __uninitialized_move_copy(_InputIterator1 __first1,
32180  _InputIterator1 __last1,
32181  _InputIterator2 __first2,
32182  _InputIterator2 __last2,
32183  _ForwardIterator __result,
32184  _Allocator& __alloc)
32185  {
32186  _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1,
32187  __result,
32188  __alloc);
32189  try
32190  {
32191  return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
32192  }
32193  catch(...)
32194  {
32195  std::_Destroy(__result, __mid, __alloc);
32196  throw;
32197  }
32198  }
32199 
32200 
32201 
32202 
32203  template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
32204  typename _Allocator>
32205  inline _ForwardIterator
32206  __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid,
32207  const _Tp& __x, _InputIterator __first,
32208  _InputIterator __last, _Allocator& __alloc)
32209  {
32210  std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
32211  try
32212  {
32213  return std::__uninitialized_move_a(__first, __last, __mid, __alloc);
32214  }
32215  catch(...)
32216  {
32217  std::_Destroy(__result, __mid, __alloc);
32218  throw;
32219  }
32220  }
32221 
32222 
32223 
32224 
32225  template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
32226  typename _Allocator>
32227  inline void
32228  __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1,
32229  _ForwardIterator __first2,
32230  _ForwardIterator __last2, const _Tp& __x,
32231  _Allocator& __alloc)
32232  {
32233  _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1,
32234  __first2,
32235  __alloc);
32236  try
32237  {
32238  std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
32239  }
32240  catch(...)
32241  {
32242  std::_Destroy(__first2, __mid2, __alloc);
32243  throw;
32244  }
32245  }
32246 
32247 
32248 
32249 
32250 
32251  template<bool _TrivialValueType>
32252  struct __uninitialized_default_1
32253  {
32254  template<typename _ForwardIterator>
32255  static void
32256  __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
32257  {
32258  _ForwardIterator __cur = __first;
32259  try
32260  {
32261  for (; __cur != __last; ++__cur)
32262  std::_Construct(std::__addressof(*__cur));
32263  }
32264  catch(...)
32265  {
32266  std::_Destroy(__first, __cur);
32267  throw;
32268  }
32269  }
32270  };
32271 
32272  template<>
32273  struct __uninitialized_default_1<true>
32274  {
32275  template<typename _ForwardIterator>
32276  static void
32277  __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
32278  {
32279  typedef typename iterator_traits<_ForwardIterator>::value_type
32280  _ValueType;
32281 
32282  std::fill(__first, __last, _ValueType());
32283  }
32284  };
32285 
32286  template<bool _TrivialValueType>
32287  struct __uninitialized_default_n_1
32288  {
32289  template<typename _ForwardIterator, typename _Size>
32290  static void
32291  __uninit_default_n(_ForwardIterator __first, _Size __n)
32292  {
32293  _ForwardIterator __cur = __first;
32294  try
32295  {